社区
网络编程
帖子详情
如何获得一个局域网(同一个网段)内的所有ip地址和主机名?
dawndu
2003-11-21 12:36:14
具体用什么函数先知道ip,然后通过ip得到主机名
...全文
9264
24
打赏
收藏
如何获得一个局域网(同一个网段)内的所有ip地址和主机名?
具体用什么函数先知道ip,然后通过ip得到主机名
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ablefirst
2003-11-26
打赏
举报
回复
看来只能PING了,多线程。
nail63547188
2003-11-26
打赏
举报
回复
gz,up
dawndu
2003-11-26
打赏
举报
回复
挺难说的,我要是网关都没有,怎么办?每个机器还要开启snmp服务吧?
shootingstars
2003-11-25
打赏
举报
回复
ping当然只是众多方法中间的一种,任何一种方式都不是万能的。
读取分析MIB库,看似好办法,但是同样存在问题:
一:并非所有设备都支持snmp。
二:读取分析MIB库工作量太大,需要大量的网络设备测试。
changlele
2003-11-25
打赏
举报
回复
to:楼上那些多线程并且用Ping来实现的人们
这并不是一个可行的方法,如果我把ping服务(防火墙级别设成关闭ping服务)给关了,谁能给出更好的方法,是不是只能研究最底层网络服务了
其实楼上njtlxm(njtlxm) 说的方法应该可行的(结合snmp)
yintongshun
2003-11-25
打赏
举报
回复
以前写的有个例子,不知道你的EMail
shootingstars
2003-11-25
打赏
举报
回复
楼上似乎有什么话想说又没有说出口,不知道njtlxm(njtlxm)说的:
1、并不是说开多少个线程的问题 (那是什么问题?)
2、建议多研究一下多线程的机制
多线程机制?什么机制?多线程不就是用于这种目的吗?
多线程就是为了尽量提高CPU和各种资源的利用率,在这里使用多线程是再恰当不过,不知道njtlxm(njtlxm)对此到底有什么异议.
njtlxm
2003-11-25
打赏
举报
回复
1、并不是说开多少个线程的问题
2、建议多研究一下多线程的机制
njtlxm
2003-11-25
打赏
举报
回复
另外还可以参考fluke 的one touch,看看它的搜索机制
njtlxm
2003-11-25
打赏
举报
回复
我认为,就这个任务而言,对于一个网段,使用多线程PING没有任何优势,在单cpu的计算机上与单线程没有什么区别.
当然,如果要全部检查一个网段的IP地址,使用结合snmp不能大幅度地缩短搜索时间.
但是,结合snmp能够在很短的时间内准确而有效地列举大多数IP地址.
第一个snmp广播包,只需要一个,就会得到本网段内所有支持snmp计算机的响应.比如说10个.
再去读取这10个计算机的MIB库(每个计算机发一个snmp Get请求),就能得到访问过这些计算机的其他IP地址.
这样在短时间内可以得到网段内重要设备的IP地址信息,在GUI显示方面可以让用户立即看到这些信息,其余的可以逐个PING验证.
shootingstars
2003-11-24
打赏
举报
回复
开一百个线程,每个线程ping一个ip(ping3次),每次ping的超时时间为1秒,那么检测一个IP地址的时间是3秒,考虑并行工作,检测100个IP地址的时间也大概是3秒。
检测一个255个主机地址的网段用不了10秒(考虑到启动线程的时间等其他消耗)。
这个速度并不慢。。。
njtlxm
2003-11-24
打赏
举报
回复
to dawndu(东南飞) :
你这个问题实际上不是“如何”而是“如何更好”,是不是?
最保险的办法是逐个ping,但是这样效率较低。
我认为优化一些的办法是结合snmp,因为一个局域网中应该有网关,而网关大多支持snmp协议。
首先是发出一个全网广播的snmp,此时会立即得到所有支持snmp的主机的回应。
然后再读取这些主机的MIB库,呵呵,接下来自己分析去。
shootingstars
2003-11-24
打赏
举报
回复
开255×100个线程并不现实,但是开100个线程实在不多。流光就是开的100个线程进行的网络扫描。
我自己就做过150个线程的,这对于Win2000来说并没有什么不可行的。
njtlxm
2003-11-24
打赏
举报
回复
楼上的真是高人!
按此计算,一个B类网段,只需要开255×100个线程,同样也是10秒钟搞定。
甚是佩服!
NicholasXu
2003-11-23
打赏
举报
回复
gethostbyaddr()探测不存在的IP好像特别慢!有没有同感???
ynstudio
2003-11-22
打赏
举报
回复
没办法,有的时候把问题写出来,好象自己才能得到解决,我早发现了。你实验的如何了?
dawndu
2003-11-21
打赏
举报
回复
说实话,在csdn我问问题还从来没有得到过满意的答复,最后解决问题还是靠自己。
可能这样说是伤了大家的感情,但是这的确是事实。
dawndu
2003-11-21
打赏
举报
回复
changlele(梦幻水晶) 下面的代码经过测试,希望对你有用,发现最近好像很多人都在问这个问题,好用就给我加分,枚举网络中的所有计算机(我拿CList测试一下,你可以拿别的测试)
-------------------------------
WNetEnumResource我早就用过了,我写的比你的要全
WNetEnumResource这个东西只可以获得网上邻居里面的的所有计算机,网络邻居也有看不到的主机,你怎么办?
我看只能一个一个ping,然后通过ip得到主机名,怎么通过ip得到主机名,gethostbyaddr也不知道可以不可以,先试一下在说
studyingpersons
2003-11-21
打赏
举报
回复
谢谢楼主,我有学了一招!!!
t0mychen
2003-11-21
打赏
举报
回复
看一下PING。Cpp的源代码,(注意-a)这参数,网上这代码太多了
加载更多回复(4)
批处理bat实现扫描
局域网
所有机器IP、MAC地址和计算机名
批处理bat实现扫描
局域网
所有机器IP、MAC地址和计算机名
局域网
搜索
方便快捷地搜索、浏览
局域网
资源。多线程搜索
局域网
上所有的工作组、主机、打印机、共享文件。自动搜索所有共享的mp3、电影或自定义搜索的文件;允许用户自己设置登录的用户名密码。包括默认值和对不同的主机设置不同的值;内置nbtstat,能快速查找某一IP
网段
内的所有主机,并根据
IP地址
得到对方主机的
主机名
、工作组名、用户名、MAC地址,速度极快。并方便地访问其资源。扫描某一IP
网段
内的所有主机的端口,向某一主机发送消息。提供断点续传的功能(
局域网
机器间拷贝文件时)。采用类似资源管理器的界面,操作十分方便。绿色软件,功能强劲。
局域网
嗅探器LAN Explorer 1.50
最好的
局域网
搜索软件。 1.方便快捷地搜索、浏览
局域网
资源。多线程搜索
局域网
上所有的工作组、主机、打印机、共享文件。 2.可以按照网上邻居、工作组或者按照
IP地址
段自动搜索所有共享的mp3、电影或自定义搜索的文件; 3.内置nbtstat,能快速查找某一IP
网段
内的所有主机,并根据
IP地址
得到对方主机的
主机名
、工作组名、用户名、MAC地址,速度极快。能将扫描和搜索的结果保存成文本文件或excel电子表格文件。 4.能对某一地址范围的主机进行ping,端口扫描操作,找出所有的WEB服务器,FTP服务器等。能向某一主机发送消息。 5.
局域网
机器间拷贝文件时,提供文件和目录的断点续传的功能。 6.采用类似资源管理器的界面,操作十分方便。绿色软件,开放源代码。
局域网
IP搜索程序(VC++的源代码)
局域网
IP搜索程序(VC++的源代码),可以搜索
网段
的
ip地址
,
主机名
,mac地址,源码基于VC6.0
局域网
变态扫描器(最好的
局域网
搜索软件)
最好的
局域网
搜索软件。 1.方便快捷地搜索、浏览
局域网
资源。多线程搜索
局域网
上所有的工作组、主机、打印机、共享文件。 2.可以按照网上邻居、工作组或者按照
IP地址
段自动搜索所有共享的mp3、电影或自定义搜索的文件; 3.内置nbtstat,能快速查找某一IP
网段
内的所有主机,并根据
IP地址
得到对方主机的
主机名
、工作组名、用户名、MAC地址,速度极快。能将扫描和搜索的结果保存成文本文件或excel电子表格文件。 4.能对某一地址范围的主机进行ping,端口扫描操作,找出所有的WEB服务器,FTP服务器等。能向某一主机发送消息。 5.
局域网
机器间拷贝文件时,提供文件和目录的断点续传的功能。
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章