리눅스에서 ip 확인후 메일로 보내주기

자신의 아이피 확인

curl http://www.ipip.kr 2>/dev/null | grep "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"
curl http://www.ipip.kr 2>/dev/null | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+"

%% -o 옵션은 grep 으로 match 된것만 출력하라는 의미

현재 ipip.kr은 존재하지 않는다. 따라서 저 위의 스크립트는 다른 사이트로활용해야 하겠다.

ip 정규표현식을 이용한 grep : grep “[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+”

 

IPADDR=$(curl http://www.ipip.kr 2>/dev/null | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+" | head -n 1); echo $IPADDR | mail -s "우리집아이피" webterrorus@gmail.com

%% 중요한 것은 정규표현식 기호에도 ‘\’로 마스크 해줘야 한다는 것이다.

 

완성 스크립트
——————————————————————————–
IPADDR=$(curl http://www.ipip.kr 2>/dev/null | grep -o “[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+” | head -n 1); python /usr/local/bin/send_my_mail.py $IPADDR;
——————————————————————————–
webterror ~ # cat /usr/local/bin/send_my_mail.py
import smtplib
import sys
from email.mime.text import MIMEText as text

# Specifying the from and to addresses

fromaddr = ‘webterrorus@gmail.com’
toaddrs = ‘webterrorus@gmail.com’

# Writing the message (this message will appear in the email)

msg = sys.argv[1]

# Gmail Login

username = ‘webterrorus@gmail.com’
password = ‘password’

m = text(msg)

m[‘Subject’] = ‘My IP Address’
m[‘From’] = username
m[‘To’] = username
# Sending the mail

server = smtplib.SMTP(‘smtp.gmail.com:587’)
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, m.as_string())
server.quit()

 

Crontab 등록

webterror@webterror ~ $ crontab -l
# DO NOT EDIT THIS FILE – edit the master and reinstall.
# (/tmp/crontab.XXXXOYWQ9q installed on Thu Aug 7 13:48:07 2014)
# (Cron version V5.0 — $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
* * * * * IPADDR=$(curl http://www.ipip.kr 2>/dev/null | grep -o “[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+” | head -n 1); python /usr/local/bin/send_my_mail.py $IPADDR;

관련 글

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다