ip地址增量问题

Rap*_*nzo 3 c# ip ip-address

我想增加我的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的值

pax*_*blo 8

你的问题是你ip[2]ip[3]包裹时不会增加(等等).下面的代码应该做的伎俩,最后包装255.255.255.2550.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)