V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
huangya
V2EX  ›  OpenWrt

openwrt 实现通过邮件的方式来获取 IP

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

    鉴于 ddns 配置麻烦的问题,或者被 block 的问题,我在想是否可以通过脚本调用命令行邮件程序来报告 wan 口 ip. 有人实现过吗? 10 分钟报告一次,或者更高级一点的逻辑是检测到 ip 有变化才报告。

    13 条回复    2023-06-28 10:14:09 +08:00
    MeteorVIP
        1
    MeteorVIP  
       304 天前 via iPhone
    脚本检测 ipv6 改变了则发生新 IP 的微信
    renfei
        2
    renfei  
       304 天前
    那就写个 sh 脚本呗,我自己用的获取方式是:
    curl ip.renfei.net -H "Accept:text"
    wonderblank
        3
    wonderblank  
       304 天前   ❤️ 1
    ```
    root@main:/etc/hotplug.d/iface# cat /etc/hotplug.d/iface/30-ntfy.sh
    #!/bin/sh

    [ "$ACTION" = ifup -o "$ACTION" = ifupdate ] || exit 0
    [ "$ACTION" = ifupdate -a -z "$IFUPDATE_ADDRESSES" -a -z "$IFUPDATE_DATA" ] && exit 0

    ipv4=$(/sbin/ifstatus wan | jq -r '."ipv4-address"[0] | .address')
    ipv6=$(/sbin/ifstatus wan_6 | jq -r '."ipv6-address"[0] | .address')

    [ $ipv6 = 'null' ] && exit 0
    [ $ipv4 = 'null' ] && exit 0

    curl \
    -H "Title: main ip addresses are changed" \
    -H "Priority: default" \
    -H "Tags: main" \
    -d "IPv4: $ipv4, IPv6: $ipv6" \
    ntfy.sh/hello

    logger -t ntfy.sh "Sending ip addresses notification, ipv4: $ipv4, ipv6: $ipv6"
    ```
    wonderblank
        4
    wonderblank  
       304 天前
    ```
    root@main:/etc/hotplug.d/iface# curl ipip.ee
    xxxxxx

    root@main:/etc/hotplug.d/iface# curl ipv6.ipip.ee
    xxx
    ```
    huangya
        5
    huangya  
    OP
       304 天前
    @wonderblank 以前没有接触过 ntfy 。刚搜索了一下,如果要保证完全的隐私,是不是要自己搭建一个公网 server 才能保证隐私。如果用官方的,那只能相信官方了,且密码(也就是主题)要强一点,是吗?
    huangya
        6
    huangya  
    OP
       304 天前
    @renfei 你这个是获取 IP ,没有推送到邮件或者其他渠道吧?
    wonderblank
        7
    wonderblank  
       304 天前
    一条 IP 地址而已,无所谓。自己机器防火墙记得加固好就行。
    renfei
        8
    renfei  
       304 天前
    @huangya

    echo $(curl ip.renfei.net -H "Accept:text") | mail -s "IP" [email protected]

    邮箱换成自己的,然后需要指定 IPv4 或 IPv6 的话更换为

    ipv4.renfei.net
    ipv6.renfei.net
    Jirajine
        9
    Jirajine  
       304 天前
    @huangya 你把自己的 ip 信息,发送到 ddns 服务商、邮件服务商、ntfy.sh 的区别是什么?
    datocp
        10
    datocp  
       304 天前 via Android
    邮件这就厉害了,又是 smtp 又是邮件终端,不知道要浪费多少空间。
    至于 ddns ,用的 ipignorelist.com


    # cat /ddns.sh
    #!/bin/sh
    cd /tmp;ip1=`nslookup xxx.ignorelist.com 114.114.114.114 | sed -n "5p" | cut -d " " -f3`;
    #ip2=` ifconfig pppoe-wan | grep addr|cut -d":" -f2|awk '{ print $1}'`
    wget -4 -O /tmp/ip.tmp http://checkip.dyndns.com
    ip2=`cat /tmp/ip.tmp|cut -d "<" -f7|awk '{ print $4}'`
    if [ "$ip1" != "$ip2" ];then
    wget -4 -O /tmp/ddns.tmp https://freedns.afraid.org/dynamic/update.php?MW
    mu2er
        11
    mu2er  
       304 天前 via Android
    IP 地址不是频繁更换的话记得 openwrt 都有 pushbot 跟 serverchan 的插件可以给微信钉钉 telegram 这些的定时推送消息。
    也可以在扩展里设置 IP 变动推送消息。
    serverchan 可以自定义推送途径,比 pushbot 多了点自定义。
    huangya
        12
    huangya  
    OP
       304 天前
    @Jirajine 你说的也有道理。可能我当时发表评论的时候本能地认为 ddns 服务商,邮件服务商比较传统,久经考验了吧。还有些邮件服务器比较大,信誉高
    qfdk
        13
    qfdk  
       304 天前 via iPhone
    这个... 不是路由器固件里面有个么…… 你找个叫做老毛子的固件. 然后里面的代码复制出来 里面是检测到 ip 变换就会给你 curl 更新 dns 解析. 你这里换成 brak 推送啥的都可以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3019 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:20 · PVG 16:20 · LAX 01:20 · JFK 04:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.