• 请不要在回答技术问题时复制粘贴 AI 生成的内容
feng0vx
V2EX  ›  程序员

chatgpt 不灵了, bash 怎么优雅的在一行中用 mac 地址生成 EUI64 地址

  •  
  •   feng0vx · May 23, 2024 · 1816 views
    This topic created in 766 days ago, the information mentioned may be changed or developed.

    要在 openwrt 中使用,复杂的操作命令可能不支持

    13 replies
    wheat0r
        1
    wheat0r  
       May 23, 2024
    chatgpt 好使的,我刚刚试过了
    feng0vx
        2
    feng0vx  
    OP
       May 23, 2024
    @wheat0r 发出来 看看嘛
    wheat0r
        3
    wheat0r  
       May 23, 2024
    @feng0vx #2 “请不要把 AI 生成的内容发送到这里” via https://www.v2ex.com/about
    我用的提示词很简单“如何在 bash 中使用常规命令通过 mac 地址生成 EUI64 地址?”
    feng0vx
        4
    feng0vx  
    OP
       May 23, 2024
    @wheat0r 你运行试了吗,哈哈,结果不对
    ysc3839
        5
    ysc3839  
       May 23, 2024 via Android
    其实也不麻烦吧,就是 MAC 首字节要用位运算把一个 bit 设置成 1 ,其他的字符串拼接就可以了
    ysc3839
        6
    ysc3839  
       May 23, 2024 via Android
    已经测试过,OpenWrt 使用的 busybox ash 是支持 $((1 | 2))这种位运算的,所以并没有问题
    wheat0r
        7
    wheat0r  
       May 23, 2024
    @feng0vx #4
    $ ./mac_to_eui64.sh 02:42:fe:6e:19:d5
    EUI-64: 00:42:fe:ff:fe:6e:19:d5
    royzheng
        8
    royzheng  
       May 23, 2024   ❤️ 1
    换个思路弄
    curl -s 'https://nettools.club/_mac2ipv6_ajax' --data-raw 'mac=aa%3Abb%3Acc%3Add%3Aee%3Aff'
    feng0vx
        9
    feng0vx  
    OP
       May 23, 2024
    @wheat0r 感觉哪里不对,哈哈哈 #7
    feng0vx
        10
    feng0vx  
    OP
       May 23, 2024
    @royzheng 我本来是想用网关 MAC 生成网关的 EUI64 地址,再用::ffff:ffff:ffff:ffff 匹配本地链路和全球地址两个
    现在不用 mac 生成了,用$(ip -6 route | awk '/^default/ {print $5}')获取一个网关地址,一般是本地链路,然后匹配它的::ffff:ffff:ffff:ffff

    GATEWAY_IPV6=$(ip -6 route | awk '/^default/ {print $5}')
    ebtables -t filter -A FORWARD -i $INTERFACE -p IPV6 --ip6-protocol udp --ip6-destination ${GATEWAY_IPV6}/::ffff:ffff:ffff:ffff --ip6-destination-port 53 -j ACCEPT
    ebtables -t filter -A FORWARD -i $INTERFACE -p IPV6 --ip6-destination ${GATEWAY_IPV6}/::ffff:ffff:ffff:ffff -j DROP
    wheat0r
        11
    wheat0r  
       May 23, 2024
    @feng0vx #9 ipv6 不太懂,没看出来哪不对。倒是我试了几个 AI ,算出来都不一样。
    feng0vx
        12
    feng0vx  
    OP
       May 23, 2024
    @wheat0r 你那个应该是 fe80::42:feff:fe6e:19d5
    wheat0r
        13
    wheat0r  
       May 23, 2024
    @feng0vx #12 你说的这个是利用 EUI-64 生成的 Link-Local 地址吧,EUI-64 应该是专指由 48bit 的 mac 地址转出来的 64bit 标识符。完整的 ipv6 地址已经 128bit 了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2893 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:30 · PVG 15:30 · LAX 00:30 · JFK 03:30
    ♥ Do have faith in what you're doing.