获取linux主机的公网ip,并将该ip发到email,怎样实现? ifconfig -a 获取的是内网ip,不可行啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取linux主机的公网ip,并将该ip发到email,怎样实现? ifconfig -a 获取的是内网ip,不可行啊相关的知识,希望对你有一定的参考价值。
ifconfig -a获得的是分配给本机的ip,但由于ipv4地址的短缺,一般组网时都使用了NAT转换技术,所以获取不到公网ip。使用如下方法获取并发送到邮箱:
curl -s "http://checkip.dyndns.org/"|cut -f 6 -d" "|cut -f 1 -d"<" | mail -s “告诉你分给本机的公网ip” 收件邮箱
能发送成功前提是你已经给本机配置好了发件邮箱追问
发送成功,也收到了邮件,但是邮件正文是空白,why?
追答照上面操作还是正文为空??先执行在terminal上curl -s "http://checkip.dyndns.org/"|cut -f 6 -d" "|cut -f 1 -d"<",看结果正确不?我这测试是通过了的
追问OK,3qu!
参考技术A 写个脚本首先你得确定你服务器是几网卡,如果是4块,确定你自己配置的外网ip的网卡,比如eth0
那么你就获取eth0的ip就好了 然后mail -s 发送获取的ip到你的邮箱追问
因为linux主机在内网
我先用curl http://iframe.ip138.com/ic.asp > ip.txt
获得外网ip,再用如下两条命令的任意一条:
cat ip.txt | mail -s "hi,I am ip" mycur@163.com
mail -s "hi,I am ip" mycur@163.com <ip.txt
但邮件中的正文和附件都没有显示ip.txt的内容why?
可以在脚本中加个判断,例如:
#!/bin/bash
curl http://iframe.ip138.com/ic.asp > ip.txt
if test -s ip.txt ;then
mail -s "hi,i am ip" pl_1612@163.com < ip.txt
else
echo "empty" >ip.txt
fi
echo $ipadd |mail -s "外网IP地址" xxx@163.com
Linux云主机获取本机公网IP地址
因为公司的云主机使用ifconfig和ip add命令都只能看到内网IP地址,而脚本里面又需要获取公网IP地址进行一些动作;
# ip ad 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:d9:18:4e brd ff:ff:ff:ff:ff:ff inet 192.168.1.191/24 brd 192.168.1.255 scope global eth2 inet6 fe80::a00:27ff:fed9:184e/64 scope link valid_lft forever preferred_lft forever
这里看不到公网IP,知呢个看到内网IP地址,可以通过curl ip.cip.cc来获取公网IP地址
# curl ip.cip.cc 183.xx.xx.xx
本文出自 “鬼迷心窍” 博客,请务必保留此出处http://dragondragon.blog.51cto.com/6170889/1931615
以上是关于获取linux主机的公网ip,并将该ip发到email,怎样实现? ifconfig -a 获取的是内网ip,不可行啊的主要内容,如果未能解决你的问题,请参考以下文章