C# 迭代IP地址
假设我有两个IP地址(在.NET中,C# 迭代IP地址,c#,.net,C#,.net,假设我有两个IP地址(在.NET中,System.NET.IPAddress类)。如何迭代两个给定地址之间的所有IP地址 例如,一个地址为192.168.1.1,另一个地址为192.168.2.3。我想以某种方式迭代中间的所有地址,并将它们打印到控制台 谢谢。IPv4地址基本上是带有不同符号的Int64。因此,您可以执行以下操作: for (var i = fromAddress.Address; i <= toAddress.Address; i++) { Console.Wri
System.NET.IPAddress
类)。如何迭代两个给定地址之间的所有IP地址
例如,一个地址为192.168.1.1,另一个地址为192.168.2.3。我想以某种方式迭代中间的所有地址,并将它们打印到控制台
谢谢。IPv4地址基本上是带有不同符号的
Int64
。因此,您可以执行以下操作:
for (var i = fromAddress.Address; i <= toAddress.Address; i++)
{
Console.WriteLine(new IPAddress(i));
}
for(var i=fromAddress.Address;i最后我使用了中提供的方法
它稍微复杂一点,但在不使用不推荐的属性的情况下工作得很好。它将IP地址转换为uint
s,增加它们,然后再转换回来。您需要子网来知道两个IPS之间的有效地址。我想不出多少“好”字扫描网络以查找有效IP地址的原因,但我可以想出很多恶意的原因。@Randolpho-示例指定了内部网络地址,因此可能有“好”的原因。@Randolpho我正在构建一个应用程序,使用WMI向多台计算机发送远程命令。我需要一个域管理员帐户名和密码来对计算机执行任何操作。IP(甚至端口)是什么时候创建的扫描会成为犯罪吗?这不起作用。假设我想从192.168.1.1增加到192.168.1.3。fromAddress。Address
是16885952,toAddress。Address
是50440384。如果我运行for循环,它会输出192.168.1.1;193.168.1.1;194.168.1.1…并且它会一直持续下去。这只是造成了一个无限循环,布林暂停系统。是的,这不起作用,因为Windows是小端,网络地址是大端。