云服务器能否通过客户机 mac 地址反查到客户机实时公网 ip

2019-01-09 13:28:03 +08:00
 tamer

背景是这样: 主机与客户机采用 udp 连接, 客户机的 ip 随时可能变更, 所以主机保存了客户机发送过来的 mac 地址作为客户机标识.

当主机下发报文时, 需要先获取客户机实时的 ip 才能发送过去.

那么问题就来啦: 我发现云服务器 arp -a的输出是

_gateway (192.168.0.1) at fa:16:3e:54:ba:e2 [ether] on eth0
? (192.168.0.253) at fa:16:3e:9f:a3:f3 [ether] on eth0
? (192.168.0.254) at fa:16:3e:36:9b:65 [ether] on eth0
? (192.168.0.66) at fa:16:3e:56:e4:3d [ether] on eth0
? (192.168.0.21) at <incomplete> on eth0

似乎根本就不会记录外网 ip???

有没巨佬能科普一下, 给个办法或者思路, 我在网络通信方面着实菜鸡, 提前感谢!

1214 次点击
所在节点    问与答
8 条回复
xenme
2019-01-09 13:41:04 +08:00
难道不是 ip+port 来通信的?
客户端哪个 IP 和端口发过来的,直接哪个地址和端口回就好了么。
singerll
2019-01-09 13:43:58 +08:00
客户机是公网 ip ?
mhycy
2019-01-09 13:45:06 +08:00
MAC 地址是二层交换所用,上层通讯只需要关心 IP 地址,
UDP 经过 NAT 以后端口有效时间不定,即便加了心跳也不一定长期有效
务必注意开发时候的断流处理
tamer
2019-01-09 14:54:27 +08:00
@xenme 端口是固定了的, 但是 ip 可能会发生变化, 因为 mac 不会变, 所以现在需要 mac 查 ip
ashes1122
2019-01-09 14:56:58 +08:00
@tamer 获取不到客户的 mac 地址的。
0myun
2019-01-09 15:00:51 +08:00
@tamer #4 你得知道。。mac 是可以自己改的。。并不是 11 对应关系
tamer
2019-01-09 15:05:35 +08:00
@ashes1122 mac 是客户机首次通信时发送到服务端的数据的一部分
tamer
2019-01-09 15:06:26 +08:00
@0myun 嗯, 场景是 mac 不变, ip 可能会发生变化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/525349

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX