我想增加我的IP地址;
这是代码
ipAddressControl1.Text = "192.168.1.255";
byte[] ip = ipAddressControl1.GetAddressBytes();
ip[3] = (byte)(++ip[3]);
IPAddress ipAddress1 = new IPAddress(ip);
MessageBox.Show(ipAddress1.ToString());
Run Code Online (Sandbox Code Playgroud)
或者我也尝试过这个
ipAddressControl3.Text = "192.168.1.255";
IPAddress ipAddress1 = new IPAddress(?pAddressControl3.GetAddressBytes());
ipAddress1.Address += 0x1 << 24;
MessageBox.Show(ipAddress1.ToString());
Run Code Online (Sandbox Code Playgroud)
但是他们两个都给了我192.168.1.0但我希望得到192.168.2.0的值
你的问题是你ip[2]
在ip[3]
包裹时不会增加(等等).下面的代码应该做的伎俩,最后包装255.255.255.255
到0.0.0.0
:
byte[] ip = ipAddressControl1.GetAddressBytes();
ip[3] = (byte)(ip[3] + 1);
if (ip[3] == 0) {
ip[2] = (byte)(ip[2] + 1);
if (ip[2] == 0) {
ip[1] = (byte)(ip[1] + 1);
if (ip[1] == 0) {
ip[0] = (byte)(ip[0] + 1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下也可能有效:
byte[] ip = ipAddressControl1.GetAddressBytes();
if (++ip[3] == 0)
if (++ip[2] == 0)
if (++ip[1] == 0)
++ip[0];
Run Code Online (Sandbox Code Playgroud)