• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IPリストのテキストファイルの中身を一括で逆引きしたい)

IPリストの逆引きと統計処理方法について

このQ&Aのポイント
  • 数万行のテキストファイルから特定の文字列を含む行のみを抽出し、IPアドレスの逆引きを行い、統計処理をする方法について説明します。
  • PHPを使用して、IPリストの逆引きと統計処理を行う方法について説明します。
  • PHPを使用して、数万行のテキストファイルから特定の文字列を含む行を抽出し、その行のIPアドレスを逆引きしてドメインに変換し、統計処理を行います。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

$file = "syslog"; $tmp_file = "./出力用ファイル"; $fp = fopen($file, "r"); $fo = fopen($tmp_file, "w"); while($d = fgets($fp)) { if (preg_match("/port-scan/", $d)) { fwrite($fo, $d); } } fclose($fp); fclose($fo); こんな感じでファイルに抽出出来るんじゃないでしょうか。 IPだけで良ければ if (preg_match("/port-scan/", $d)) { if (preg_match("/.*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/", $d, $matched)) { fwrite($fo, $matched[1] . "\n"); } } こんな感じでしょうか。 逆引きは $fo = fopen($tmp_file, "r"); $host = array(); $count = array(); while($d = fgets($fo)) { $ip = rtrim($d); if (!isset($host[$ip])) { $host[$ip] = gethostbyaddr($ip); } $count[$host[$ip]]++; } fclose($fo); こんな感じでしょうか。 円グラフは正直面倒くさいので、データを配列に入れてフリーのFlashスクリプトを使ったりした方が良いと思います。 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLJ_jaJP174JP174&q=%e3%83%95%e3%83%aa%e3%83%bc+Flash+%e5%86%86%e3%82%b0%e3%83%a9%e3%83%95 商用じゃなければJpGraphなんかを使ってもいいかも知れません。

question96
質問者

お礼

すばらしい回答を迅速にありがとうございました。

関連するQ&A