<-- private LAN -->
PC -------------------- Home router --- global IP Internet
固定じゃないので、たまにグローバルIPがかわる。
global IP をチェックする方法。
最終的には、この結果をgmailに送信したいなーと思っているが、gamilへの送信方法はあとで。
DDNSを使用してもいいんだけど。。。これまた別の機会で。
下記サイトにアクセスすると現在使用しているグローバルIPをチェックできる。
http://checkip.dyndns.org
wget で上記URLをたたけばわかるけど、pythonで作成してみた。
・wget
-O - で標準出力に表示
・python
まずはインタラクティブモードで動作チェック。
HTMLタグを re モジュールで削除。
ファイルへ書き込み
ファイルに出力された
スクリプトはこんな感じかな。
スクリプトを実行したディレクトリに my_IP.txt というファイルで結果ファイルができる。
PC -------------------- Home router --- global IP Internet
固定じゃないので、たまにグローバルIPがかわる。
global IP をチェックする方法。
最終的には、この結果をgmailに送信したいなーと思っているが、gamilへの送信方法はあとで。
DDNSを使用してもいいんだけど。。。これまた別の機会で。
下記サイトにアクセスすると現在使用しているグローバルIPをチェックできる。
http://checkip.dyndns.org
wget で上記URLをたたけばわかるけど、pythonで作成してみた。
・wget
-O - で標準出力に表示
root@hat1:~# wget http://checkip.dyndns.org -O - |
・python
まずはインタラクティブモードで動作チェック。
HTMLタグを re モジュールで削除。
root@hat1:~# python Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import httplib >>> import re >>> conn = httplib.HTTPConnection("checkip.dyndns.org") >>> conn.request("GET","/index.html") >>> r1 = conn.getresponse() >>> print r1.status 200 >>> data1 = r1.read() >>> print data1 <html><head><title>Current IP Check</title></head><body>Current IP Address: x.x.x.x</body></html> >>> p = re.compile(r'<.*?>') >>> print p.sub('',data1) Current IP CheckCurrent IP Address: x.x.x.x >>> |
ファイルへ書き込み
>>> f = open('text.txt', 'w') >>> str = p.sub('', data1) >>> f.write(str) >>> f.close() |
ファイルに出力された
root@hat1:~# cat text.txt Current IP CheckCurrent IP Address: x.x.x.x |
スクリプトはこんな感じかな。
#!/usr/bin/env python import httplib import re conn = httplib.HTTPConnection('checkip.dyndns.org',80,timeout=10) conn.request("GET","/index.html") r1 = conn.getresponse() data1 = r1.read() p = re.compile(r'<.*?>') str1 = p.sub('', data1) f = open('my_IP.txt', 'w') f.write(str1) f.close() |
スクリプトを実行したディレクトリに my_IP.txt というファイルで結果ファイルができる。
root@hat1:~/my_work# ./get_my_global_IP.py root@hat1:~/my_work# cat my_IP.txt Current IP CheckCurrent IP Address: x.x.x.x |
sedを使うとこんな具合に。。
ReplyDeletewget http://checkip.dyndns.org -q -O - | sed 's/^.\+Current IP Address: \([0-9.]\+\).\+$/\1/'
コメントありがとうございます。
ReplyDeleteおー、IPアドレスだけ取り出せますね。
アドバイスありがとうございます。
root@hat1:~# wget http://checkip.dyndns.org -q -O - | sed 's/^.\+Current IP Address: \([0-9.]\+\).\+$/\1/'
x.x.x.x
awkを使うとこんな具合に ^^_^/
root@hat1:~# wget http://checkip.dyndns.org -q -O - | awk '{print $6}' | awk -F '<' '{print $1}'
x.x.x.x