tamer
V2EX  ›  问与答

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

  •  
  •   tamer · Jan 9, 2019 · 2184 views
    This topic created in 2862 days ago, the information mentioned may be changed or developed.

    背景是这样: 主机与客户机采用 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???

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

    Supplement 1  ·  Jan 9, 2019

    结贴, 谢谢各位

    我就是个瓜皮

    xenme
    xenme
    Jan 9, 2019
    1
    难道不是 ip+port 来通信的?
    客户端哪个 IP 和端口发过来的,直接哪个地址和端口回就好了么。
    singerll
    singerll
    Jan 9, 2019 via Android
    2
    客户机是公网 ip ?
    mhycy
    mhycy
    Jan 9, 2019
    3
    MAC 地址是二层交换所用,上层通讯只需要关心 IP 地址,
    UDP 经过 NAT 以后端口有效时间不定,即便加了心跳也不一定长期有效
    务必注意开发时候的断流处理
    tamer
    tamer
    OP
    Jan 9, 2019
    4
    @xenme 端口是固定了的, 但是 ip 可能会发生变化, 因为 mac 不会变, 所以现在需要 mac 查 ip
    ashes1122
    ashes1122
    Jan 9, 2019
    5
    @tamer 获取不到客户的 mac 地址的。
    0myun
    0myun
    Jan 9, 2019
    6
    @tamer #4 你得知道。。mac 是可以自己改的。。并不是 11 对应关系
    tamer
    tamer
    OP
    Jan 9, 2019
    7
    @ashes1122 mac 是客户机首次通信时发送到服务端的数据的一部分
    tamer
    tamer
    OP
    Jan 9, 2019
    8
    @0myun 嗯, 场景是 mac 不变, ip 可能会发生变化
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1210 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 17:33 · PVG 01:33 · LAX 09:33 · JFK 12:33
    ♥ Do have faith in what you're doing.