V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
feng0vx
V2EX  ›  程序员

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

  •  
  •   feng0vx · 188 天前 · 1054 次点击
    这是一个创建于 188 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    13 条回复
    wheat0r
        1
    wheat0r  
       188 天前
    chatgpt 好使的,我刚刚试过了
    feng0vx
        2
    feng0vx  
    OP
       188 天前
    @wheat0r 发出来 看看嘛
    wheat0r
        3
    wheat0r  
       188 天前
    @feng0vx #2 “请不要把 AI 生成的内容发送到这里” via https://www.v2ex.com/about
    我用的提示词很简单“如何在 bash 中使用常规命令通过 mac 地址生成 EUI64 地址?”
    feng0vx
        4
    feng0vx  
    OP
       188 天前
    @wheat0r 你运行试了吗,哈哈,结果不对
    ysc3839
        5
    ysc3839  
       188 天前 via Android
    其实也不麻烦吧,就是 MAC 首字节要用位运算把一个 bit 设置成 1 ,其他的字符串拼接就可以了
    ysc3839
        6
    ysc3839  
       188 天前 via Android
    已经测试过,OpenWrt 使用的 busybox ash 是支持 $((1 | 2))这种位运算的,所以并没有问题
    wheat0r
        7
    wheat0r  
       188 天前
    @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  
       188 天前   ❤️ 1
    换个思路弄
    curl -s 'https://nettools.club/_mac2ipv6_ajax' --data-raw 'mac=aa%3Abb%3Acc%3Add%3Aee%3Aff'
    feng0vx
        9
    feng0vx  
    OP
       188 天前
    @wheat0r 感觉哪里不对,哈哈哈 #7
    feng0vx
        10
    feng0vx  
    OP
       188 天前
    @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  
       188 天前
    @feng0vx #9 ipv6 不太懂,没看出来哪不对。倒是我试了几个 AI ,算出来都不一样。
    feng0vx
        12
    feng0vx  
    OP
       188 天前
    @wheat0r 你那个应该是 fe80::42:feff:fe6e:19d5
    wheat0r
        13
    wheat0r  
       188 天前
    @feng0vx #12 你说的这个是利用 EUI-64 生成的 Link-Local 地址吧,EUI-64 应该是专指由 48bit 的 mac 地址转出来的 64bit 标识符。完整的 ipv6 地址已经 128bit 了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1519 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 23:58 · PVG 07:58 · LAX 15:58 · JFK 18:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.