#!/usr/local/bin/perl ############################################################ # IP/HOSTコンバートスクリプト ############################################################ # 適当なディレ作ってアスキーモードでアプロードしてパミッチョン755にしてください。 ############################################################ #-------------------------------------------------# # 設定(HTMLわかる人は素敵にアレンジしてください) #-------------------------------------------------# sub html { print < (´・ω・`)

あなたのホストです
Host$host
IP$addr
UserAgent$user_agent
環境によって古いキャッシュを読むことがあったりなかったり・・・
偽装UAが反映されてなかったらとりあえず下の変換ボタン一発押してみてください。

IPをHostに変換する
HostをIPに変換する
EOF } sub html2 { print < 変換が完了しますた。
Host$t_host
IP$t_addr
EOF } ######################################################### # これ以下、ややデリケートです。弄るなら自己責任でたのます。 ######################################################### $user_agent = $ENV{'HTTP_USER_AGENT'}; $host = &gethost($ENV{'REMOTE_ADDR'}); $addr = $ENV{'REMOTE_ADDR'}; print "Content-type: text/html\n\n"; &decode; &html; &trans; print " \n"; exit; sub gethost { my($ip_address) = @_; my(@addr) = split(/\./, $ip_address); my($packed_addr) = pack("C4", $addr[0], $addr[1], $addr[2], $addr[3]); my($name, $aliases, $addrtype, $length, @addrs); ($name, $aliases, $addrtype, $length, @addrs) = gethostbyaddr($packed_addr, 2); return $name; } sub trans { if ( $FORM{'mode'} ne "ts" ) { return; } if ( $FORM{'src'} eq "ip" ) { $t_addr = $FORM{'input'}; $t_host = &iphost($t_addr); } elsif ( $FORM{'src'} eq "host" ) { $t_host = $FORM{'input'}; $t_addr = &hostip($t_host); } else { $t_addr = $t_host = "Error!!"; } &html2; } sub iphost{ local($x)=@_; local($ip,$addr); if($x=~/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/){ $ip="$1.$2.$3.$4"; $addr=(gethostbyaddr(pack('C4',$1,$2,$3,$4),2))[0]; if($addr ne ""){return $addr;}else{return $ip;} } return $x; } sub hostip{ local($x)=@_; local($ip,$addr); $addr=$x; ($gomi,$gomi2,$gomi3,$gomi4,@addrs)=gethostbyname($x); $ip=join(".",unpack("C4",$addrs[0])); if($ip ne ""){return $ip;}else{return $addr;} } sub decode { $script = $ENV{'SCRIPT_NAME'}; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $formdata, $ENV{'CONTENT_LENGTH'}); } else { $formdata = $ENV{'QUERY_STRING'}; } @pairs = split(/&/, $formdata); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s//>/g; $value =~ s/\n//g; $value =~ s/\,//g; $FORM{$name} = $value; } }