December 2006

December 19, 2006

このエントリーをはてなブックマークに追加
ご無沙汰しています。
自宅サーバの HDD が異音と共にぶっ壊れてしまい、10 分で作る Sledge アプリの動画とかのサルベージが出来ず、すっかり意気消沈の今日この頃、皆様いかがお過ごしですか。

なんか先日、「誰が攻撃しているか突き止めたい」というネタがホッテントリになってて、それに合わせてIPひろばというサイトもホッテントリになってました。
空前の逆探知ブームなのでしょうか。

変なカップヌードルの食べかたをする半袖さんが、それを追うように、DNSBLスタイルのクエリーを利用してIPアドレスから国コードを検索というネタを書いていますが、IP アドレスを元に国コードを調べるコマンドラインには、こんな方法もあります。

Geography::Countries と、IP::Country という CPAN モジュールを入れると、ip2cc というコマンドラインツールもインストールされます。
半袖さんが host コマンドを利用して、www.livedoor.com の A レコードを引き、NetOp: IP geolocation via DNS を利用して、
country.netop.orgをsuffixとし、
prefixにはIPアドレスを4オクテット目から表記したクエリを投げる。
という方法で、下記のように行なってました。
$ host -t a www.livedoor.com
www.livedoor.com        A       203.131.197.197
$ host -t txt 197.197.131.203.country.netop.org
197.197.131.203.country.netop.org       TXT     "JP"
少々面倒な方法 (IP アドレスを 4 オクテット目からとかが若干面倒) ですが、これをもっとお手軽にするには、先程の IP::Country に同梱されている ip2cc を使って下記のように出来ます。
% host -t a www.livedoor.com
www.livedoor.com        A       203.131.197.197
% ip2cc 203.131.197.197

  IP::Country modules (v2.22)
  Copyright (c) 2002-05 Nigel Wetters Gourlay
  Database updated Sun Dec 17 12:20:26 2006

  Address: 203.131.197.197
  Country: JP (Japan)
ちなみに、Socket::inet_aton() から Socket::inet_ntoa() を通すと正引きも出来るので、host コマンドを使わなくとも、
% ip2cc www.livedoor.com

  IP::Country modules (v2.22)
  Copyright (c) 2002-05 Nigel Wetters Gourlay
  Database updated Sun Dec 17 12:20:26 2006

  Name: www.livedoor.com
  Address: 203.131.197.197
  Country: JP (Japan)
と、正引き→国コードも一括で出来、ip2cc コマンドで、結構お手軽に国コードがわかります。


nipotan at 14:55 | Comments(0) | TrackBack(1) | 技術 
このエントリーをはてなブックマークに追加

December 01, 2006

このエントリーをはてなブックマークに追加
説明が面倒だし、忙しいので、簡潔に。
memcached は今 1.1.13 と、1.2.0 があるわけだが (これね)、1.2.0 を使ってみようと思ってインスコしてみて、同じサーバで複数のプロセスで、それぞれ -p オプションを指定して別ポートで待ち受けて起動させようと思ったんだが、どうも、そのポートが使われているよ的なエラーが出てウザくて、何が原因なのかググってみたりしたんだけど別ポートにしてフンフンってやってる人があんまりいなかったんだかなんだか知らないけど、そんな悩みを言ってる人がいなかった。で、netstat とか sockstat とかで見てみたけど、先にそんなポート使ってるプロセスはねーよって思ったから memcached のソースを読んでたら、1.2.x 系はどうも TCP も UDP も同時に listen するような仕様っぽくて、特に指定もなにもなく強制的に UDP/11211 で listen してしまうっぽく、UDP のポートを変えたきゃ -U オプションを使えばいいっぽい。でもそんなの -h オプションでヘルプ見たって出てきやしなくて、ただ単に書き忘れなんだろうけど、別に UDP とか使わなくてもいいし、むしろどっちかだけとかのほうがいいんじゃね?って思ったし、今動いてる 1.1.x を上書くと、勝手に UDP/11211 が listen してしまってなんかそれウザイって思ったから、-x オプション (何で x かっつーと、いい文字が思い浮かばなかったから) を付けて起動しないと UDP で listen しないようにする patch を書いてみた。
ごめん、すっごいテキトー。
忙しいから許して。

memcached-1.2.0.patch

はいどうぞ。
ニッチすぎて需要なさそうだから、別に使いたい人だけ、まぁ、好きに使うがいいさ。

nipotan at 17:04 | Comments(0) | TrackBack(0) | 技術 
このエントリーをはてなブックマークに追加