阅读:2725回复:13
请问,不写驱动,用编程的方式想得到局域网内各计算机的MAC及IP地址,该怎么做???
请问,不写驱动,用编程的方式想得到局域网内各计算机的MAC及IP地址,该怎么做???
|
|
沙发#
发布于:2003-01-29 13:41
获取MAC地址我不太清楚,但肯定可以获取IP地址。具体可查看MSDN里的gethostbyname函数。
|
|
|
板凳#
发布于:2003-01-30 22:59
发arp包进行轮询,iphlp api里面有个函数arpsend(sendarp?)
|
|
地板#
发布于:2003-02-09 11:21
请问楼上的那为兄台,IPHLP的资料哪里可以得到?
除了这种方法,还有其他的吗? |
|
地下室#
发布于:2003-02-27 10:47
多少分(绝对可以解决你的问题)?
|
|
5楼#
发布于:2003-02-27 19:32
SendArp下面的一个例子
稍微改了一下 #include <windows.h> #include <stdio.h> #include <tchar.h> #include <iphlpapi.h> #include \"Winsock2.h\" // // Link with ws2_32.lib and iphlpapi.lib // int main(int argc, char* argv[]) { HRESULT hr; IPAddr ipAddr; ULONG pulMac[2]; ULONG ulLen; size_t i, j; char * szMac=new char[6*3]; PBYTE pbHexMac; char addr_str[60]; for(int n=1;n<255;n++){ sprintf(addr_str,\"192.168.5.%d\",n); ipAddr = inet_addr(addr_str); memset (pulMac, 0xff, sizeof (pulMac)); ulLen = 6; hr = SendARP (ipAddr, 0, pulMac, &ulLen); // printf (\"Return %08x, length %8d\\n\", hr, ulLen); if(hr==NO_ERROR){ pbHexMac = (PBYTE) pulMac; // // Convert the binary MAC address into human-readable // for (i = 0, j = 0; i < ulLen - 1; ++i) { j += sprintf (szMac + j, \"%02X:\", pbHexMac); } sprintf (szMac + j, \"%02X\", pbHexMac); printf (\"IP=%s MAC address=%s\\n\", addr_str,szMac); } } delete [] szMac; return 0; } 2个lib文件在sdk目录下都有 |
|
|
6楼#
发布于:2003-02-28 09:47
谢谢kaput了,我已经在一个月以前找到了更简单的解决办法,E文里面确实太不可思议了,我建议大家多看看E文咯,呵呵。。。 :D :D :D
|
|
7楼#
发布于:2003-03-02 17:58
嘿嘿是吗?还没听说过,有更简单的,可以取整个局域网的mac,可以发来看看吗?
取自己的mac倒是有更简单的 而且Arpsend一个函数就搞定,还有用半个函数就可以取得mac的? 难道还用snmp.mibii? |
|
|
8楼#
发布于:2003-03-03 16:04
建议发ARP
前几天想过一个简单的自适应IP方法。 程序随便抓个ARP。然后得到该网络的大致网络结构。 然后轮询。然后给自己自动设定一个没冲突的IP地址。 还没想好在木马里怎么用。 |
|
|
9楼#
发布于:2003-03-03 19:23
谢谢kaput了,我已经在一个月以前找到了更简单的解决办法,E文里面确实太不可思议了,我建议大家多看看E文咯,呵呵。。。 :D :D :D 能粘出让大家开开眼界吗? |
|
10楼#
发布于:2003-03-04 20:20
小弟不才,大伙可了解下端口137哟, :D :D :D
至于那串数据,我也是通过NetXRay抓包得到的。 |
|
11楼#
发布于:2003-03-05 09:12
请问,不写驱动,用编程的方式想得到局域网内各计算机的MAC及IP地址,该怎么做??? 在应用层获得Mac包可采用原始socket(Raw Socket),你可以参考《Windows网络编程》一书或到google上搜一下相关资料,很简单。 利用原始socket可以在应用层作一个sniffer了 |
|
12楼#
发布于:2003-03-06 18:12
137,135仍然是netbios通讯,
win2000以上改变了这种通讯方式 但我不相信这比sendarp更简单 |
|
|
13楼#
发布于:2003-03-08 19:57
ooze说的一点也没错,不知98下如何呢,我最早就用的此方法,就是不行,能否给我一份98下能运行的code,小弟在这儿先谢了!
|
|