让机器自动给自己发个上网的IP

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
冲浪板
论坛版主
帖子: 7466
注册时间: 2007-05-06 8:19
送出感谢: 0
接收感谢: 5 次

让机器自动给自己发个上网的IP

#1

帖子 冲浪板 » 2018-02-11 13:14

上网用的动态IP又没用花生壳的话,可以让机器取得IP发给自己。

先造个ip/oldip,写几个字0.0.0.0

#!/bin/bash
des_mail=too@too.com
newip=1.1.1.1

if [ -d ~/ip ]; then
cd ~/ip
newip=`curl members.3322.org/dyndns/getip -s`
for line in `cat oldip`
do
echo $line > /dev/null
done
if [ "$line" != "$newip" ];then
echo $newip > oldip
echo $newip | mail -s "IP" $des_mail
fi
fi
exit 0


也可以用 wget members.3322.org/dyndns/getip -q
(wget默认写进文件,curl不加参数直接输出结果)
生成包含IP的getip,第二次就是getip.1,依次增加。
思路就是比较俩文件,一致就什么也不做,删除getip.1;
不一致就是ip换了,把getip.1复制到getip,然后删除 getip.1,发邮件给自己.

#!/bin/bash
des_mail=too@too.com

if [ -d ~/ip ]; then
cd ~/ip
wget members.3322.org/dyndns/getip -q
diff getip getip.1 > getipdiff
if [ -s getipdiff ]; then
cp getip.1 getip
for line in `cat getip`
do
echo $line > /dev/null
done
echo $line | mail -s "IP" $des_mail
fi
rm getip.1
rm getipdiff
fi
exit 0
funicorn
帖子: 1131
注册时间: 2005-09-13 4:56
系统: Ubuntu QQ
送出感谢: 0
接收感谢: 47 次

Re: 让机器自动给自己发个上网的IP

#2

帖子 funicorn » 2018-02-12 13:52

吹牛吧,直接用mail发信,哪个邮箱能不当垃圾邮件滤掉?如果这种没域名的邮件都不当成垃圾邮件,这邮箱也不能用了
添加ppa后只更新此ppa:
update-ppa()
{ sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/$1.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
}
写入~/.bashrc,source一下,就可以直接用,是不是很方便?觉得方便就按个赞。
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 让机器自动给自己发个上网的IP

#3

帖子 lilydjwg » 2018-02-12 13:55

funicorn 写了:吹牛吧,直接用mail发信,哪个邮箱能不当垃圾邮件滤掉?如果这种没域名的邮件都不当成垃圾邮件,这邮箱也不能用了
mail 可以设置成登录发信的呀。
另外,被当作垃圾邮件也不是多大的问题,GMail 的话自己从垃圾箱里捡回来几次就好了。
还有,在本地配置一只 Postfix 发信也不是多大的事儿。
zhangxiaofir
帖子: 53
注册时间: 2010-12-09 23:54
送出感谢: 0
接收感谢: 0

Re: 让机器自动给自己发个上网的IP

#4

帖子 zhangxiaofir » 2018-02-14 16:15

funicorn 写了:吹牛吧,直接用mail发信,哪个邮箱能不当垃圾邮件滤掉?如果这种没域名的邮件都不当成垃圾邮件,这邮箱也不能用了
mail 可以伪装发信人哦 加参数 -S from=xxx@xxx.com
头像
冲浪板
论坛版主
帖子: 7466
注册时间: 2007-05-06 8:19
送出感谢: 0
接收感谢: 5 次

Re: 让机器自动给自己发个上网的IP

#5

帖子 冲浪板 » 2018-02-15 12:41

设置参数也不能防止过滤的。

这个首先不是随意的发邮件,IP变化了才发出一个.若是IP总变,也不好用了不是,难道频繁的去设置hosts。
说吹牛嘛,是有一点,因为没考虑非正常情况,比如当断网时会怎么样,现在处理的只能是“正常”状态。
其时给自己发一个邮件看信头就知道信息了,但是不能持续的发,会当垃圾过滤的。

起始这还不不够,要设置cron任务,每1小时或30分钟检测一下看IP是否变化。否则就没意义了。
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 让机器自动给自己发个上网的IP

#6

帖子 lilydjwg » 2018-02-15 12:49

冲浪板 写了:因为没考虑非正常情况,比如当断网时会怎么样,现在处理的只能是“正常”状态。
所以我用 Python 干这种事情,有问题会有错误报告(通过 cron 发送到本地邮箱)。后来我改用域名,就不用发一堆邮件了,还要登录邮箱去看。不过现在我又改用 ssh 反代和 Wireguard VPN 了,因为该死的鹏博士就是个大 NAT,知道IP根本没用。
头像
冲浪板
论坛版主
帖子: 7466
注册时间: 2007-05-06 8:19
送出感谢: 0
接收感谢: 5 次

Re: 让机器自动给自己发个上网的IP

#7

帖子 冲浪板 » 2018-02-15 12:52

zhangxiaofir 写了:
funicorn 写了:吹牛吧,直接用mail发信,哪个邮箱能不当垃圾邮件滤掉?如果这种没域名的邮件都不当成垃圾邮件,这邮箱也不能用了
mail 可以伪装发信人哦 加参数 -S from=xxx@xxx.com
我这样写不灵,把from=xxx@xxx.com当第二收件人了,用 -- -f from=xxx@xxx.com 可以,但是这只是看上去是这样
zhangxiaofir
帖子: 53
注册时间: 2010-12-09 23:54
送出感谢: 0
接收感谢: 0

Re: 让机器自动给自己发个上网的IP

#8

帖子 zhangxiaofir » 2018-02-23 9:11

冲浪板 写了:
zhangxiaofir 写了:
funicorn 写了:吹牛吧,直接用mail发信,哪个邮箱能不当垃圾邮件滤掉?如果这种没域名的邮件都不当成垃圾邮件,这邮箱也不能用了
mail 可以伪装发信人哦 加参数 -S from=xxx@xxx.com
我这样写不灵,把from=xxx@xxx.com当第二收件人了,用 -- -f from=xxx@xxx.com 可以,但是这只是看上去是这样
centos下的mail是可以的, [-S variable[=value]] 不同版本的mail可能参数不一样
q_yangguangyouzi
帖子: 37
注册时间: 2012-03-06 0:22
送出感谢: 1 次
接收感谢: 0

Re: 让机器自动给自己发个上网的IP

#9

帖子 q_yangguangyouzi » 2018-04-21 0:37

一直用这种方法发送ip,设置mail的配置文件,用第三方smtp发送邮件.
通过nexmo发送短信也可以
回复

回到 “Shell脚本”