对方能不能拿到你的IP地址,取决于你们建立连接的方式。网络通信本质就是数据包互相传递,你的设备想要收到返回数据,数据包里必须附带自身地址,不然对方不知道往哪里回传数据。所以大部分场景下对方获取你的IP,根源是你主动发起连接,只是你没有意识到。
先说访问网站这个场景。浏览器输入网址回车,浏览器向网站服务器发起TCP连接请求,数据包内必须携带你的IP地址,服务器才能把网页资源回传给你。服务器日志会自动记录访问者IP、访问时间、访问页面。网站管理员查看日志就能看到你的IP。这和寄信原理类似,信封不写寄件地址,信件无法退回。网站页面显示“你的IP是xxx”,并不是它有特殊能力,只是读取了你请求自带的IP信息。

聊天软件分为两种模式。早期QQ、MSN很多采用点对点传输,文字消息可能经过服务器中转,但文件传输、语音通话大多是两台电脑直连。直连通信时双方必须获取对方IP和端口,对方借助抓包工具或是查看连接状态就能拿到你的IP。现在微信、WhatsApp消息大多走服务器中转,消息先发送到服务商服务器,再转发给接收人。这种情况下聊天对象看不到你的IP,但服务商服务器保存你的IP。如果对方是黑客,可以发送恶意链接给你,你点击访问之后,对方服务器日志就记录你的IP,原理和网站日志记录IP一致。
电子邮件也可能泄露IP。使用Outlook、Foxmail这类客户端软件发邮件,邮件头部一般会包含发件人IP地址。邮件服务商添加的Received字段,记录邮件传输经过的每一跳节点,第一条记录通常就是你的真实IP。网页版邮箱大多会隐藏真实IP,但不是绝对。如果使用代理发送邮件,邮件头记录代理IP,但代理配置不当依旧会暴露真实IP。
游戏场景也很常见。不少对战游戏为降低延迟,采用P2P直连,玩家设备之间直接交换数据。开局之后,对手设备和你的设备建立连接,对方使用工具可以查看所有连接用户IP。部分游戏虽然走服务器转发,但服务器会把你的IP同步给同房间玩家,用于语音通信或是快速匹配。如果你在游戏里和别人发生争执,对方声称查到你的IP,大概率是借助游戏连接或是第三方工具获取。
论坛、贴吧评论区,普通用户互相看不到IP,但管理员、版主后台能查看每条帖子对应的发布IP。部分论坛会根据IP解析出大致地理位置,在用户资料页标注来源地区。如果你在论坛和其他人产生矛盾,对方如果是版主,就可以查到你的IP,依靠IP定位到城市,结合其他信息进一步推断你的身份。
还有一种是对方主动探测获取IP。对方知道你的QQ号、微信号,但没有你的IP。可以发送带特殊参数的链接,你点击访问,对方服务器捕获你的IP。或是在语音通话软件中抓包解析IP。更技术化手段是利用WebRTC,浏览器建立实时通信时会暴露内网和公网IP,部分网站会悄悄调用这个接口采集IP,就算开启VPN,也有可能泄露真实公网IP。
那什么场景对方拿不到你的IP?启用代理或是VPN的时候。流量先转发给代理服务器,代理服务器代替你访问目标站点,目标网站记录的IP是代理服务器地址,不是你的真实IP。对方只能获取代理IP,无法定位你本人。但代理服务商保存你的真实IP,如果服务商不诚信,或是收到执法部门调取要求,你的真实IP依旧会被提交。Tor网络匿名性更强,多层加密和随机路由机制,每一层节点只知道上一跳和下一跳节点,出口节点无法获知你的身份。缺点是访问速度慢,出口节点存在被监控风险。
另外还有运营商内网地址问题。现在很多家庭宽带没有独立公网IP,路由器WAN口地址以100.64开头,属于运营商级NAT。这种情况下访问网站,网站记录的IP是运营商出口IP,几十户家庭共用同一个出口IP。对方拿到这个IP只能定位到城市和运营商,无法定位到单独用户。但运营商内部留存日志,可以查询某个内网地址在对应时间使用的公网IP,执法部门可以调取相关记录。
总结来说,对方获取你的IP,基本都是你主动发起连接,或是访问对方可控资源。单纯被动等待,对方没办法拿到你的IP。想要隐藏IP,可以使用代理、VPN或者Tor,但不存在绝对的匿名,只是提升追踪成本。日常上网不用过度紧张,大部分网站记录IP只是用于访问统计、防护攻击,不会用来做恶意行为。