IP地址增加了C#的控制方式
本文关键字:控制 方式 地址 增加 IP | 更新日期: 2023-09-27 18:19:54
我只想自动增加并获取从任何IP范围开始的IP地址。
例如,
10.1.1.255 (passed value that IP to function)
10.1.2.1 (third octet changed, fourth octet set to '1')
或
10.1.2.11 (passed value that IP to function)
10.1.2.12 (third octet stable, fourth octet increased)
有可能像上面控制的方式那样做吗?
要提供另一种可能的解决方案,可以在System.Net.IPAddress类上使用Extension方法,如:
public static class MyExtensions
{
public static System.Net.IPAddress Increment(this System.Net.IPAddress value)
{
var ip = BitConverter.ToInt32(value.GetAddressBytes().Reverse().ToArray(), 0);
ip++;
return new System.Net.IPAddress(BitConverter.GetBytes(ip).Reverse().ToArray());
}
}
然后,你会这样使用它:
var ipAddress = IPAddress.Parse("10.1.1.255");
var newIpAddress = ipAddress.Increment();
试试这个:
string[] i = "10.1.1.255".Split('.');
long n = Convert.ToInt64(i[0]) * (long)Math.Pow(256, 3)
+ Convert.ToInt64(i[1]) * (long)Math.Pow(256, 2)
+ Convert.ToInt64(i[2]) * 256
+ Convert.ToInt64(i[3]);
n++;
n = n % (long)Math.Pow(256, 4);
string next = string.Format("{0}.{1}.{2}.{3}", n / (int)Math.Pow(256, 3), (n % (int)Math.Pow(256, 3)) / (int)Math.Pow(256, 2), (n % (int)Math.Pow(256, 2)) / 256, n % 256);
它将IP地址拆分为多个部分。计算它的一个数值。然后加一得到下一个,检查是否溢出。然后输出下一个值。