如何扫描局域网内在线的电脑

zjw921003 2011-10-09 08:35:19
说一下编程的思想 要是有源代码那就更好了 C\C++
...全文
555 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2012-02-10
  • 打赏
  • 举报
回复
arping
ping
做端口扫描
程序员小迷 2012-02-09
  • 打赏
  • 举报
回复
系统网络模块有api的 不用一直ping
赵4老师 2011-10-25
  • 打赏
  • 举报
回复
#include <windows.h>
#include <stdio.h>
char cmdstr[256];
int i;
int YN(int k) {
FILE *f;
char fn[40];
char ln[80];
int yn=0;

sprintf(fn,"d:\\ping%d.txt",k);
f=fopen(fn,"r");
if (NULL!=f) {
fgets(ln,80,f);
fgets(ln,80,f);
fgets(ln,80,f);
if (1==fscanf(f,"Re%c",&yn)) yn='q'-yn;
fclose(f);
unlink(fn);
}
return yn;
}
void main() {
for (i=115;i<130;i++) {
sprintf(cmdstr,"cmd /c ping 192.168.2.%d -n 1 -w 1000 >d:\\ping%d.txt",i,i);
WinExec(cmdstr,SW_HIDE);
}
Sleep(3000);
for (i=115;i<130;i++) {
printf("%d 192.168.2.%d\n",YN(i),i);
}
}
//1 192.168.2.115
//0 192.168.2.116
//0 192.168.2.117
//0 192.168.2.118
//1 192.168.2.119
//0 192.168.2.120
//0 192.168.2.121
//0 192.168.2.122
//1 192.168.2.123
//0 192.168.2.124
//0 192.168.2.125
//1 192.168.2.126
//0 192.168.2.127
//1 192.168.2.128
//0 192.168.2.129
crakme 2011-10-25
  • 打赏
  • 举报
回复
熟读TCP/IP协议就好办了
子谋 2011-10-25
  • 打赏
  • 举报
回复
核心思想就是ICMP,说白了就是ping……
根据所在的网段(看掩码),把所有可能的主机ip都ping一遍,应该没有更好的方法了……
广播只是发送数据,没有确认返回,所以没法进行扫描……
也可以用被动的方式,就是不停的监听局域网内所有通信,把通信的ip都记录下来就行了,不过没通信过的就记录不下来了,这只是一种思路,表示的确不会怎么做嗅探器的编程……
RabbitLBJ 2011-10-25
  • 打赏
  • 举报
回复
先获取本机的子网掩码,然后ping所有这个网络的主机,ping的代码网上很多。或者楼主重定向ping自带的那个也行。

或者就是发广播包吧
haoshenwang 2011-10-23
  • 打赏
  • 举报
回复
首先要知道局域网的子网掩码,然后ping一下,根据返回的值翻译成具体的电脑号
TearyWang 2011-10-09
  • 打赏
  • 举报
回复
大多数电脑的局域网都是允许ping的,简单的方法就是发一个ping命令,收到回应就是在线了。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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