现在我想发送一个数据包给某一台机器,得到那台机器的一些主机信息,比如我发送137端口的TCP请求数据报,这样就可以得到对方的一些主机信息。我也可以通过发送ICMP数据包,通过在ICMP数据包后面填充一些特有的数据,使返回的ICMP数据包也带有那些特有的数据信息。想请教一下高手,我还可以发送哪些端口或哪种协议的数据包,得到目标主机的主机信息(比如主机名、工作组等)(跟137端口一样)或返回我事先填在发送的请求数据包后面的数据(和ICMP一样)?大家自由发言呀,有什么想法都尽管发表吧,来着有分!

解决方案 »

  1.   

    没明白你要干什么,既然已经用一种方法得到了,还要干什么呢?TCP的端口号是有限的资源,137端口可以完成的,其他端口,就没有必要在重复一下了吧.TCP的端口号从0-1023是固定的,各自有自己的意义,找找这方面的资料,就可以了吧.
      

  2.   

    应该是在一种服务上绑定几个端口,请求时可以采用select选择,至于能得到什么返回消息,你需要看看协议了
      

  3.   

    不知道你对协议和端口了解多少。
    TCP和UDP采用16 bit的端口号来识别应用程序。服务器一般都是通过知名端口号来识别的。例如,对于每个TCP/IP实现来说,FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP(简单文件传送协议)服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号。
    客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端口号又称作临时端口号(即存在时间很短暂。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着的,其服务就运行。
    大多数TCP/IP实现给临时端口分配1024~5000之间的端口号。大于5000的端口号是为其他服务器预留的(Internet上并不常用的服务)。
    我曾用VC写过从链路层到网络层的发包收包程序,首先你应该知道你要实现的是从哪个层向哪个层发包,然后了解要发送包遵循的协议,这才是最重要的!
    不才,见笑。
      

  4.   

    我想问的是Windows系统有哪些端口默认状态下是开的呢?比如我知道的80、137、135、139端口就一般都开着。这样我可以发往这些端口的数据报,让目标机器自动回复响应包。响应包如果可以夹带Windows系统的主机信息当然最好了,如果不行,那如果可以包裹请求数据报下的内容(比如TCP下的内容)也可以,这样我收到目标机器送来的响应包,就可以根据响应包夹带的特征数据来判断是不是我所要的响应包了