扫描本网段ip c语言实现

来源:百度知道 编辑:UC知道 时间:2024/06/25 18:21:35
我用过一个扫描本网段ip的软件.很希望自己能搞清楚原理.在dos下用ping命令可以,但对整个网段扫描有些累,而且结果不好处理.希望哪位帮忙写一个(c/c++).
具体要求:language:c/c++,想试的java也行(最好不用)
应用环境:DOS,不要WiN下的,
功能:1,输出本机ip;
2,根据本机ip,扫描整个网段(ip前三段与 本机一样,最后0~255);以列表形式(标准或txt)输出
example:
No. ip mac 在线
1 192.168.1.1 dd5f54df4** 不在线
2 192.168.1.2 sd5f5f6dfg6r 在线
... ... ... ...
255 192.168.1.255 dsf4g5dfg5fg 在线
注意:如果用ping扫描不到有防火墙的,所以希望NB人士写一个能扫描有防火墙的程序.(若实在写不出,不能扫描有防火墙的也行,回答时请著名,本人将视程序好坏给分).程序有必要给出应用说明和程序注释.
本人也是IT爱好者,愿与您交流
QQ:462241875
blog:www.hi.baidu.com/migrantcoder

ping 使用的是ICMP报文
获取远端机器的MAC地址使用的是UDP报文
方法是不一样的

UDP报文套接字 socket
RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
端口一般 取 137(10进制)
如果扫描成功可以获取远端机器的工作组名称,机器名称,MAC地址