最近在看网段计算机信息扫描的编程,
方法是仿照nbtstat,向对方的137端口发数据包,包的内容如下
BYTE b[50]={0x0,0x00,0x0,0x10,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,
0x20,0x43,0x4b,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x0,0x0,0x21,0x0,0x1};
对方会向你返回一个数据包,
其中有对方的工作组,主机名,用户名,MAC地址。
我想问下,
b[50]是如何构造的,有什么含义?
返回的数据包的格式是什么?
方法是仿照nbtstat,向对方的137端口发数据包,包的内容如下
BYTE b[50]={0x0,0x00,0x0,0x10,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,
0x20,0x43,0x4b,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
0x41,0x41,0x41,0x0,0x0,0x21,0x0,0x1};
对方会向你返回一个数据包,
其中有对方的工作组,主机名,用户名,MAC地址。
我想问下,
b[50]是如何构造的,有什么含义?
返回的数据包的格式是什么?
解决方案 »
- socket 换个端口bind返回-1
- 请问:如何设置WTL控件CListViewCtrl加上右键菜单。
- 请教SetColumnHeaders(2)问题
- 简单问题:画直线
- [win32]我想创建一个没有Title的窗口,我的WNDCLASS应该怎样设置?
- 关于VC中数据库编程的小问题
- problem about create windows and button event!
- +++++谁知道:文本文件的的读出,插入操作细节?+++++
- 请问哪个COM组件可以实现快进和快退播放影像?
- 我想用DialogBox()做对话框,但是如何获得HINSTANCE hinstance这个参数呢?
- 结束线程时,释放线程所占用的资源问题
- 大家对出国有何看法?
下图是一次TCP通讯的时序图。
另外,如果是IP数据报的话:
IP数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。对于IPv4,4位版本字段是4。4位首部长度的数值是以4字节为单位的,最小值为5,也就是说首部长度最小是4x5=20字节,也就是不带任何选项的IP首部,4位能表示的最大值是15,也就是说首部长度最大是60字节。8位TOS字段有3个位用来指定IP数据报的优先级(目前已经废弃不用),还有4个位表示可选的服务类型(最小延迟、最大呑吐量、最大可靠性、最小成本),还有一个位总是0。总长度是整个数据报(包括IP首部和IP层payload)的字节数。每传一个IP数据报,16位的标识加1,可用于分片和重新组装数据报。3位标志和13位片偏移用于分片。TTL(Time to live)是这样用的:源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。协议字段指示上层协议是TCP、UDP、ICMP还是IGMP。然后是校验和,只校验IP首部,数据的校验由更高层协议负责。IPv4的IP地址长度为32位。选项字段的解释从略。这个东西解释起来很费劲啊,你上面所有的疑问可以从<TCP/IP协议 原理与实现>这本书上得到满意解释.关于你的内容还可以看这里,有你关于nbtstat与socket相关编程:
http://learn.akae.cn/media/ch37s02.html