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

Openwrt 开机脚本,自动发送外网 IP 给我,思路?

  •  
  •   zhangneww · 2015-11-29 15:17:13 +08:00 · 580 次点击
    这是一个创建于 3293 天前的主题,其中的信息可能已经有所发展或是发生改变。

    可以用邮件,也可以通过某种方式写入到我的另个 VPS 中,我再获取。

    有没有思路或者现成的脚本?

    不想用花生壳,耗内存,使用脚本的话只需要开机时执行一次就可以了。

    谢谢。

    10 条回复    2016-01-23 11:42:21 +08:00
    zhangneww
        1
    zhangneww  
    OP
       2015-11-29 16:20:33 +08:00
    找到了一些思路,但是路由器是刷的「改华硕[N14U N54U]5G 2G 的 7620 老毛子 Padavan 固件」

    opkg 不能用, lua 脚本也不能用,唉,没找到纯 shell 的发邮件脚本
    leungzw
        2
    leungzw  
       2015-11-29 22:27:02 +08:00 via Android
    DDNS 不就是干这个的么,侬是想搞 NAS 还是怎样
    coffeecat
        3
    coffeecat  
       2015-11-30 08:34:41 +08:00   ❤️ 1
    ddns 花生壳 shell 脚本。。。不耗内存,如果不是 ppoe 拨号的需要修改
    http://routeragency.com/?p=291

    #!/bin/sh
    USER="******"
    PASS="******"
    DOMAIN="******.****.net"
    IP=`ifconfig pppoe-wan|awk -F "[: ]+" '/inet addr/{print $4}'`
    URL="http://${USER}:${PASS}@ddns.oray.com:80/ph/update?hostname=${DOMAIN}&myip=${IP}"

    if [ -f /tmp/oray ]; then
    old_ip=`cat /tmp/oray | awk '{ print $2}'`
    if [ "${old_ip}" = "${IP}" ]; then
    exit
    fi
    fi
    wget -q -O /tmp/oray -q ${URL}
    xm0625
        4
    xm0625  
       2015-11-30 16:31:43 +08:00   ❤️ 1
    @coffeecat 膜拜一下

    说说我的思路:
    3322 的 ddns, 然后

    #!/bin/sh


    while [ 1 -eq 1 ]
    do
    cat /dev/null > /tmp/ddnsresult-3322.txt
    wget 'http://members.3322.net/dyndns/update?system=dyndns&hostname=xxxx.f3322.net' --http-user=xxxx --http-password=xxxx -x -O /tmp/ddnsresult-3322.txt >/dev/null 2>&1
    uptime >> /tmp/ddnsresult-3322.txt
    sleep 30s
    done
    zhangneww
        5
    zhangneww  
    OP
       2015-11-30 20:45:32 +08:00
    @coffeecat 非常感谢,有两个问题:

    一:脚本执行报错,./oray: line 5: syntax error: unexpected end of file (expecting "fi")

    二:是 ppoe 拨号,网卡叫 ppp0 ,但是得到的不是真是的外网 IP ,是这个 10.252.xx.152 内网 ip ,和通过 http://ip.cnhttp://ipecho.net/plain 得到的 IP 都不一样( 111.227.XX.155 )。而且通过 ifconfig 所有网卡都没找到真正的外网 IP ,是不是我的到的就是一个内网,我没有外网 IP ?
    zhangneww
        6
    zhangneww  
    OP
       2015-11-30 21:59:44 +08:00
    @coffeecat 问题解决了,第一个是因为密码包含特殊符号。第二个问题是电信的问题,没给我公网 IP ,貌似是通过 NAT 转换了,正在想办法解决。
    coffeecat
        7
    coffeecat  
       2015-12-01 09:25:07 +08:00
    @zhangneww 这个我也是网上找了后改的脚本
    npc0der
        8
    npc0der  
       2015-12-28 17:09:55 +08:00
    不知道其带不带 cron 功能,我是内网群晖上面的 定时脚本

    申请了 dnspod 并且事先知道了我一个域名的二级域名的 domain_id 和 record_id (这个参考其 api 文档可以得到怎么获取方法)

    curl -k https://dnsapi.cn/Record.Ddns -d 'login_email=&login_password=&domain_id=&record_id=&sub_domain=home&record_line=默认' > /var/log/ddns.log

    这样我的二级域名就会自动指导我家的 ip 了。

    当然 oray 也可以 但是好像要安装客户端 我以前用的 oray 方案 后面自己用黑群晖后改了这个方案
    tuutoo
        9
    tuutoo  
       2016-01-18 00:29:50 +08:00 via Android
    @zhangneww 电信这个好搞 给他打电话 说要公网 ip 就行
    lqzhgood
        10
    lqzhgood  
       2016-01-23 11:42:21 +08:00
    curl http://ipip.net 2>/dev/null
    即可~
    我是开机用 py 发邮箱。
    每小时用 shell 同步 ddns
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3466 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.