Linux下如何查看自己的公网IP并通过邮件发送

前言:
局域网的服务器是通过ADSL路由器连接外网的,在路由器上做个端口22映射就可以使用路由器的WAN口的IP地址ssh到服务器上。但ADSL是从ISP运营商那儿通过动态获得IP的,如何从外面知道服务器的公网IP呢?
今天找到一个方法:

1. 先确定自己的公网IP:
使用如下命令即可:
     wget http: // members.3322.org/dyndns/getip
     cat getip
网址 http: // members.3322.org/dyndns/getip是一个返回本机公网IP的一个脚本页面,得到IP后可以写一个脚本,定时给自己的邮箱发送这个IP地址。脚本还要想想如何写。

2.配置发送邮件客户端:
安装SSL安全验证软件包:
sudo apt-get install ca-certificates libssl0 . 9.8  openssl ssl-cert
安装mutt(用于发送邮件的外壳程序)和mstmp(用于发送邮件的客户端):
sudo apt-get install mutt msmtp
配置 mutt,修改.muttrc文件如下:
set  editor = " vim "   # 设置默认编辑器
# 建立信箱
set  mbox = " ~/Mail/inbox "
set  mbox_type = maildir
set  spoolfile = " ~/Mail/inbox "
set  postponed = " ~/Mail/postponed "
set  record = " ~/Mail/sent "

# 关于msmtp的设置
set  sendmail = " /usr/bin/msmtp "
set  use_from = yes
set  from = usr@gmail . com
set  envelope_from = yes

# set  alternates = "  usr@gmail.com "
#  这是一个格式字符串,用来控制你的index的列表显示。它的缺省定义是
#   set  index_format = " %4C %Z %{%b %d} %-15.15L (%4l) %s "
# 指定你有哪 些信箱文件。当你按  " c "  切换信箱时,再按 Tab 键,这些信箱就可供你选择
mailboxes Mailbox sent-mail
#  这是一个 bool 型变量。它表明你在回信时引用原文是否加入原文的邮件头。
set  header = no
#  可以设置为 yes ,  no ,  ask-yes ,  或者 ask-no .
#  这是说,当你按q退出时,是否提示你 ( ask-yes , ask-no )
#  还是直接就退出了 ( yes ) ,还是根本不理你 ( no )
set  quit = ask-yes
#  那些类型的附件是允许直接通过  . mailcap 浏览的?
auto_view text
/ html
#  这也是一个提示性变量。它是确定当你退出时,是否提示你把信件
# 从spool 移动到的mbox 文件。
set   move = no
#  当 Mutt 用 thread 方式显示时,是否用纯 ascii 表示树状列表。
set  ascii_chars = yes
#  回信时是否包含原文。
set  include
#  回信的引文之前插入那个符号?
set  indent_str = " "
#  设置你自己的邮件头。
my_hdr From: usr@gmail
. com
#  打分
#  新信件 + 4分 , 主题包含 " 通知 " + 2 ,主题包含  " Circulation "   + 3 ,  已经标记
#  删除的 - 5 ,上次没有读的  + 1 ,包含  " believe " 的 - 10 ( 垃圾广告! )
score 
" ~N "   + 4
score 
" ~s 通知 "   + 2
score 
" ~s Circulation "   + 3
score 
" ~D "  - 5
score 
" ~O "   + 1
score 
" ~s believe "  - 10
#  排序方式。
set   sort = score
#  当用 thread 排序方式时,我们对各个 thread 的相对排序顺序。
set  sort_aux = date
#  如果翻到最后,再按往下翻也不会翻到下一封信件
set  pager_stop
#  如果设置,当你按  " r "
#  回信时,就不会再提示你输入回信地址和主题,直接进入编辑
# 模式。
set  fast_reply
#  当你按  " t "  或者  " D "  之类的标记操作时,是否自动把光标移动到下一封信件。
set  resolve = yes
#  地址簿
source ~
/. mutt . alias
#  当你在 index 里按  " a "
#  为来信者取别名时,使用哪一个别名文件保存这个别名。
set  alias_file =/ home / lixuebai /. mutt . alias
#  你发出的邮件保存到那个信箱文件?比如可以像我这样每个月发出的信件放在不同的文件
里。
set  record = " ~/Mail/=sent-mail-`date +%Y-%m` "
#  你的终端支持哪一种编码的显示?这个必须和你的终端编码一样。
# 注意这个如果设置不正确的话会导致在写邮件时出现一个 " bad IDN " 的错误信息
set  charset = " utf-8 "
#  send_charset
set  send_charset = " gb2312:utf-8:us-ascii:iso-8859-1 "
#  外部程序退出时,是否要求用户按一个键才返回。这在察看某些shell命令输出时是比要 > 的,
#  否则它们一下就消失了。
set  wait_key = yes
#  当你要把信件存到另一个信箱,而这个信箱已经存在时,是否提示附加?
set  noconfirmappend
#  是否把邮件头也放在编辑器里可以修改?
set  edit_headers = no
#  当你在用 pager 看信件时,在 index 留出多少行显示邮件列表?
set  pager_index_lines = 4
#  告诉 Mutt 你已经订阅了那些邮件列表 ( mailing-list ).
#  subscribe fvwm@fvwm . org

#  mutt显示日期为中文
set  locale = " zh_CN "
#  有些没有设置字符编码时
# charset-hook  . * gb2312
#  Chinaren 等服务器发出来的信件使用了 quoted-printable 的 subject,
#  而且设置编码为  " iso8859-1 " ,这显然是错误的。
#  对付这个错误的办法是把 iso- 8859 - 1  变成 gb2312 的别名
charset-hook ^iso-
8859 - 1 $  gb2312
#  evolution 发过来的 subject 为 utf- 8  编码的邮件标题乱码!
#  那就把不是 utf- 8  的编码都映射到 gb2312
charset-hook !utf-
8  gb2312
#  mutt进行pop3收信,当然之前要查看 $  mutt -v 编辑情况的确编辑了pop3了。
#  以后进入mutt按G就可以收信了。
set  pop_user = usr@gmail . com
set  pop_pass = " password "
set  pop_host = pops: // pop . gmail . com
set  pop_last = yes

# 颜色设置
color normal brightblue default
color attachment blue default
color error red white
color status white blue
color hdrdefault magenta default
color indicator black cyan 
配置msmtp,修改.msmtprc文件如下:
defaults
tls 
on

# Gmail

account gmail
host smtp
. gmail . com
from usr@gmail
. com
auth 
on
user usr@gmail
. com
password password
port 
587

account default : gmail
修改.muttrc和.msmtprc文件的权限为0600:
chmod  0600  .muttrc .msmtprc
编写获得公网IP并与以前的相比较,如果不同,则使用mutt发送邮件到指定信箱。
# ! / bin / bash

if  [ -f getip ]
then
echo   " getip文件存在 "
rm -fr oldip
mv getip oldip
fi

wget http:
// members . 3322 . org / dyndns / getip
RESULT
= `diff oldip getip`
if  [  " $RESULT "  ! =   ""  ]
then
echo   " IP已经更改,发送邮件 "
cat getip | mutt -s 
" IP地址更改 "  usr@ 163 . com
fi
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值