转载地址:http://blog.csdn.net/xyydyyqf/article/details/9139893
根据实测,这种方法现在有时有效有时无效了。另一种方法参靠下一篇文章
使用快捷键 “开始键+R”,或者打开开始,搜索“运行”,运行cmd。
输入 tasklist 命令,得到当前进程的名字,PID,会话,内存使用情况。
例如当前两个QQ的PID是4616,4618。
给QQ好友随便发送一个截图,可以建立一个直接到对方电脑的Socket连接(因为QQ发送消息时候文字利用服务器转发,图片视频直接建立协议连接)
输入命令netstat,netstat有很多用法,这里用两种,netstat -n 和 netstat -o
当输入netstat -n , 不需要tasklist的结果,而且可以迅速得到网络会话列表。
不过这样的弊端在于不一定可以得到QQ的网络链接且准确性无法确定。
有的做法是在没有发送截图的时候使用一次 netstat -n,发送后再使用一次netstat -n,对比两次的不同结果,多余的就是对方的IP信息。不过这样做很多时候不是很准确因为网络连接很多而且有延迟问题。我观察一个如果用 netstat -n 比较好的一个办法是看对方地址,即“外部地址”的端口,一般是50000以上的端口。
最准确无误的办法是用netstat -o ,配合之前得到tasklist里的进程PID。可以看到进程PID为4616也就是之前得出的qq.exe。不过这个稍微有点慢。
第一次对方是 123.138.238.40:https,这是因为发送的是文字,所以通过服务器中转,端口也是https 443 (http 是端口 80)。所以这不是对方的ip而是服务器的ip。
第二次没有4616的信息是因为延迟。
第三次发送了截图从4616看出就得到了对方的ip,119.4.45.61:55647,接收端口一般都是在50000以后。
总结:QQ的端口好像和以前不一样了,以前是固定的4000什么的,现在变成动态的了,而且协议也不是UDP(另外一直都不能查手机的地址,因为是通过服务器中转了的,查出来的IP是深圳总部的中转服务器IP),很直观的是凡是外部地址端口是http(80)或https(443)的都是发送到服务器而不是个人电脑的,反正以前的很多查IP的软件都无效了,有的病毒广告什么的也一堆,还是自己查的比较好。
不过也有可能发送截图什么的还是要通过服务器那就没法查出对方IP了。
同理:查询微博、人人、YY等好友信息原理也一样,就看这些客户端在发送消息时是通过服务器中转还是直接与对方建立链接了,有兴趣的可以测试一下。(至少视频语音在线传文件应该是直接建立连接而不是通过中转服务器)