标题：IPMAN
功能 当前版本的IPMan具有以下功能
1.查询本机的以太网地址。
2.查询子网上任何机器的以太网址。
3.查询以太网址对应的IP地址。(未测试)
4.监听子网上流过的以太网包。 
5.发送ARP报文。
6.建立TCP连接，发送接收TCP报文。
利用最后两个功能，可以伪装成子网上的任何一台机器。当然，我只对伪装成受信主机感兴趣。
文件
IPMan.c 源代码[1]
IP.h 各种包头定义
IPMan.exe 可直接运行。只要当前目录下存在
vpacket.vxd
IPMan.ini IPMan运行所需的初始参数。
vpacket.vxd
vpacket.exe vpacket.vxd编程环境。自解压文
件。使用方法见展开后的vpacket.doc 文件(Word97)。
README
初始参数
IPMan运行所需的初始参数都存放在文件IPMan.ini中。在IPMan运行前，有两个参数是必须重新设定的：本机的IP地址和NDIS设备名。有关NDIS请参考： http://www.microsoft.com/ddk NDIS设备名一般是0000、0001等等。在Win95注册表的如下位置：KEY_LOCAL_MACHINE/System/CurrentControlSet/control/net/0000 ，IPMan.ini的格式类似于其它Windows应用的INI文件。有一点要注意的是，两个定义的段中间必需用一个空行分隔。由"#"开始的行是注释行。以下是一个IPMan.ini样板。
"//"后是作者加入的注释，真正的文件中是没有的。
--------------cut here--------------
#Every segment should be seperated by blank
line #My IP address 
[IpAddr] // 本机的IP地址
xxx.xxx.xxx.1 #NDIS driver name
[NDIS] // NDIS设备名
0000 #Max data length
[MaxDataLen] // 输出时最多输出的字节数，详见
输出一节
4096 #IP table to query
[QueryIP] // IP地址列表，表示想要监听主机的
IP地址 xxx.xxx.xxx.2
xxx.xxx.xxx.3
#Port table to query // 端口列表，表示想要监
听主机的端口(TCP/UDP)
[QueryPort]
21 23 80 #Time out // 超时(未提供)
[TimeOut] 12345
命令行参数 IPMan的命令行参数如下
无参数 显示本机以太网址 [-?] 显示帮助信息
[-l[ini] [-ip:sour_ip[:dest_ip]]
[-port:sour_port[:dest_port]]]
-l 监听所有信息
-lini 监听信息有IPMan.ini的QueryIP和QueryPort过滤
-ip:sour_ip 过滤掉所有与sour_ip无关的IP包
sour_ip的格式为xxx.xxx.xxx.xxx
-ip:sour_ip:dest_ip 过滤掉非sour_ip与dest_ip之间通讯的IP包
-port:sour_port 过滤掉所有与sour_port无关的IP包
-port:sour_port:dest_port 过滤掉非sour_port和 dest_ip间通讯的IP包
[qeth:ip_addr] 查询ip_addr对应的以太网址
[-qip:eth_addr] 查询eth_addr对应的IP地址，以太网址的格式为 xx.xx.xx.xx.xx.xx(16进制)
[-fout:output_file] 输出文件
[-fcmd:command_file] 命令文件，用于发送ARP包、建立TCP连接等
详见命令文件一节
命令文件
IPMan的命令文件用于发送ARP包、建立TCP连接和接收、发送TCP报文。其格式为：
命令名 命令参数1 命令参数2 命令参数3 ...
现在支持的命令有：
SENDARP my_eth targ_eth sour_eth sour_ip
dest_eth dest_ip operation
发送ARP报文。关于ARP报文，请参考TCP/IP协议。
CONNECT my_eth targ_eth sour_ip dest_ip
sour_port dest_port tcpid
建立从sour_ip的端口sour_port到dest_ip的dest_port端口的TCP
连接。用tcpid作为标识。这个标识将用于下列命令。要注意的是my_eth(我的以太网址)和targ_eth(目的以太网址)一定要填写。 SENDTCP tcpid tcpmessage发送TCP报文。将tcpmessage发送到tcpid指定的连接。tcpmessage为一个不含空格的字串。空格或不可显示字符以xxx表示。xxx为 三位十进制数。
RECVTCP tcpid
接收由tcpid指定的TCP报文。
CLOSE tcpid 关闭由tcpid指定的TCP连接。
以下是一个命令文件的样板。以"#"开始的行是注释行。
--------------cut here--------------
# A sample comment line
SENDARP xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx
xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx
xx.xx.xx.xx.xx.xx xxx.xxx.xxx.xxx 2
CONNECT xx.xx.xx.xx.xx.xx xx.xx.xx.xx.xx.xx
xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
1026 21 1
RECVTCP 1
SENDTCP 1 USER
RECVTCP 1
SENDTCP 1 PASS
RECVTCP 1
SENDTCP 1 BYE
RECVTCP 1
CLOSE 1
输出
错误输出到屏幕。标准输出可以可以是屏幕或由命令行指定。输出格式为：
xxx.xxx.xxx.xxx -> xxx.xxx.xxx.xxx // 源和目的IP地址
xx Byte(s) TCP/UDP/ARP/ICMP
Message:message_string
其中message_string的格式和上节的tcpmessage相同。xx Byte(s)表示实际收到的字节数。真正输出的字节数由INI文件指定。
将来
今后的版本将提供的功能包括建立伪UDP连接，发送和接收UDP报文，发送和接收 ICMP报文等。
IPMAN 叶问
电影《叶问》的英文名“IP MAN”
叶问为什么会翻译成IP MAN呢？
其实IP MAN仅仅是叶问的广东话（香港话）发音（拼音），在广东话里面“叶”的拼音写法是Ip，也可以是Yip，而“问”的话，广东话拼音则是“man”。所以Ip man仅仅是叶问的一个广东话拼音直译而已，简单明了，并不是什么Super man之类的。
类似这种广东话发音直接音译的还有许多，譬如：
MCDULL：麦兜；张家辉：CHEUNG KA FAI；张学友：CHEUNG HOK YAU；刘德华：LAU TAK WAH；吴宇森：NG YU SUM；张曼玉：CHEUNG MAN YUK；周润发：CHOW YUN FAT；梁朝伟：LEUNG CHIU WAI；谢霆锋：TSE TING FUNG；郭富城：KWOK FU SHING；林青霞：LAM CHING HA……