如何遍历IP段间的IP?

baiheqiuhan 2007-05-19 11:21:36
例如:
192.168.1.1 192.168.255.255
不止是D段IP不同,应该不能用.AddressList吧?
如何将次IP段的所有ip都列出来?
...全文
468 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiheqiuhan 2007-05-28
  • 打赏
  • 举报
回复
问题已解决
散分喽~
Oceanson 2007-05-22
  • 打赏
  • 举报
回复
我给你的是
.......http://www.codeproject.com/cs/internet/peerlister.asp
中的核心代码
改页有源代码下载,告诉你如何取得计算机所在工作组(域)内的所有计算机ip列表

http://www.codeproject.com/cs/internet/ipnumbers.asp 同样提供元代码下在
它的类的功能就是验证你所指定的一个ip地址是否可见
你可以非常容易的遍历255去穷举ip地址
weizhuangzhi 2007-05-20
  • 打赏
  • 举报
回复
把IP转成数值,循环增加数值来遍历
Oceanson 2007-05-20
  • 打赏
  • 举报
回复
I think this is what you want
http://www.codeproject.com/cs/internet/ipnumbers.asp
and
http://www.codeproject.com/cs/internet/peerlister.asp
core code

Shell32.Shell sh = new Shell32.Shell();
Shell32.Folder currFolder =
sh.NameSpace(Shell32.ShellSpecialFolderConstants.ssfNETWORK);
int num =
sh.NameSpace(Shell32.ShellSpecialFolderConstants.ssfNETWORK).Items().Count;
MessageBox.Show("The Num of Items in special folder in the local",
currFolder.Items().Count.ToString());

for(int i=0;i<num;i++)
{

if(currFolder.Items().Item(i).IsFileSystem==false)
{
if(currFolder.Items().Item(i).Type.ToString()=="")
{
MessageBox.Show(currFolder.Items().Item(i).Name);
int no =sh.NameSpace(currFolder.Items().Item(i)).Items().Count;
currFolder = sh.NameSpace(currFolder.Items().Item(i));
MessageBox.Show(no.ToString());

MessageBox.Show(currFolder.Items().Item(0).Name+": Cool");
currFolder=
sh.NameSpace(sh.NameSpace(currFolder.Items().Item(0)).Items().Item(0));
MessageBox.Show(currFolder.Items().Count+": Count");

MessageBox.Show(mycount.ToString());

for(int k=1;k<mycount;k++)
{
try
{

listView1.Items.Add(new ListViewItem
(currFolder.Items().Item(k).Name+k.ToString()));

}
catch(Exception myexcep)
{

MessageBox.Show(myexcep.ToString()+" : Error");

}
}
}
}
}
sswwee 2007-05-20
  • 打赏
  • 举报
回复
很简单,ip地址可以转成长值从0到4294967295,一个ip段在长值里是连续的。
baiheqiuhan 2007-05-20
  • 打赏
  • 举报
回复
回 sswwee(最有价值球员),4294967295一共10位,IP地址有12位,而且我试了下好像不能像IP地址那样连续,应该是我水平问题吧,望给出具体解决方案。

回 Oceanson(洋之光),你给的东西我没看懂,很抱歉……

回 weizhuangzhi(壮志 距离升星还有1500分) ,请问你的意思是转换成int吗?IP地址的格式跟普通数值的格式有很大差别,例如我们首先都能想到的255进1,换成整型就很难处理了,我曾想过用4个for循环嵌套,后来发现在很难遍历一个IP区间,具体我也表达不清,如果你有好的解决方法,望不吝赐教。
sswwee 2007-05-20
  • 打赏
  • 举报
回复
回 sswwee(最有价值球员),4294967295一共10位,IP地址有12位,而且我试了下好像不能像IP地址那样连续,应该是我水平问题吧,望给出具体解决方案。
=========================
我真败给你了。xxx.xxx.xxx.xxx,每位都是0到255就是256个,为什么?因为==256^4==一个uint32可表示的最大值。看看ipaddress的getaddressbytes吧

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧