谢邀。
要知道当年(2010年以前)能够通过IM查到对方IP地址的手段,是因为当年的IM往往使用P2P技术,而且ISP往往不使用NAT等手段,所以才可以直接查到好友所使用的IP地址。
但现在即时通信软件增加了大量新feature,比如服务器端保存消息,各种推送什么的。所以你现在发消息给好友,已经不是P2P方式了,而是发给/服务器,然后服务器保存下来或转发给在线的好友。这时候你的通信对象已经是服务器,而非用户了。
但现在IM中仍然有P2P协议,比如的语音、视频等,如此大量的数据,以及对延迟的要求,服务器不会做转发,此时可以抓到与对方IP通信的UDP包。
但情况可能还会再复杂一些(这都是我测试出现过的情况):
由于ISP网关的存在,即使使用P2P,你查到的对方IP也是NAT,或ISP在某一城市或省的出口。等工具在P2P时,可能也会选择服务器转发数据,在他认为用户直连的延迟大于服务器转发时,为了使用体验,就选择服务器转发了。所以如今使用通信软件查好友IP变得越发困难了。
至于题主说的“内查询我的设备例如我的安卓手机的ip地址则为真实的ip”,是因为你的安卓手机上的会查到本机IP(比如访问 ip.cn 这样的网站,显然是访问腾讯服务器),然后再上报到服务器上,你在上查看“我的设备”自然可以看到真实的IP。
能看到自己的IP,是为了账号安全,看不到别人IP,是为了别人的隐私。
那是软件上报的,不是你查到的。
你看到的,都是设计者想让你看到的。
早期似乎是p2p。那个时候有很多的ip查看器。但是时代在进步嘛,对等机又不安全,又不方便管理,于是就改成了cs。(其实还有个问题,路由器的出现让p2p变的很难做,打洞总不太适合这么大的产品)
至于 我的设备 这个功能。那肯定还是p2p方便,一般来说设备和pc上的在一个局域网里,没有那么多其他问题。
你发送的IP是经过机房然后再到你朋友那里~
{"code": "10000","charge": false,"remain": 0,"msg": "查询成功","result": {"code": 200,"data": {"score": "83"真人度},"ip": "120.228.5.28","msg": "Success"}}
116.161.255.133 : 28