hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
11/05/2005 うーん [長年日記]
tDiary 1108日目
■ [Py][戯言] HostIP とか mimetools とか RFC とか
import urllib
import mimetools
class HostIP(dict):
_URL_BASE = 'http://api.hostip.info/rough.php?position=true&ip=%s'
_GOOGLEMAPS_BASE = 'http://maps.google.com/?q=%sN+%sE(%s)'
def __init__(self, ipaddr):
url = self._URL_BASE % ipaddr
#
fp = urllib.urlopen(url)
headers = mimetools.Message(fp, 0)
fp.close()
#
dict.__init__(self, headers.dict)
self['ipaddr'] = ipaddr
self['url'] = url
self['googlemaps'] = self._GOOGLEMAPS_BASE % (self['latitude'], self['longitude'], ipaddr)
で
>>> test = HostIP('210.156.41.55')
>>> for k, v in test.items():
... print '%s: %s' % (k, v)
...
city: Morioka
guessed: true
url: http://api.hostip.info/rough.php?position=true&ip=210.156.41.55
googlemaps: http://maps.google.com/?q=39.7N+141.15E(210.156.41.55)
latitude: 39.7
country: JAPAN
ipaddr: 210.156.41.55
country code: JP
longitude: 141.15
一応うまく行くには行くんだがね.
mimetools は 2.3 以降で撤廃 (互換としては残る) らしい.email.Parser.HeaderParser を使うと,こいつは RFC2822 に完璧に準拠してるらしく,ヘッダフィールド名に空白が混じるとダメなんで Country Code が取れなくなる.てか mimetools.Message が RFC に完全準拠してないのがおもろい.利便性を取ったのかな.
しかしやっぱ横着せずに XML の方を解析すんのが正統派なんかなー.めんどくせ.
てか
このサーバ岩手公園内にあるのかよ(わら
でもいいところまでいってる.
g-cpanは便利って言えば、便利。
中で何がどーなっているかはまったくわかりませんけど(笑)
いやー,中が全く分からないのは Perl だかうわなにをするやめrくぁwせdrftgyふじこ
atzmさん、なんか変な薬やりました?(w
g-ctan も作ったんですけどねえー
うーん強いて挙げれば百薬の長と呼ばれる妙薬ですかねぇ ;)
てか CTAN はいいですねえ.バリバリの TeX 使いには嬉しいですよきっと.
ぐーぐる先生のローカルは、なかなか素敵。とっ都庁周辺がぁぁぁ!ほんぎゃdじゃせdrffgyふじこ
コンビニだらけですな.