現在位置: Top/IPが入ったファイルからHOST一覧を作成
- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- IPが入ったファイルからHOST一覧を作成 へ行く。
- 1 (2006-08-13 (日) 21:07:27)
- 2 (2006-08-13 (日) 23:16:44)
- 3 (2015-04-03 (金) 22:54:04)
IPが入ったファイルからHOST一覧を作成
「NucleusのブロックするIPアドレスを同期」をしたとき、IPアドレスが並んだファイルが作成されますが、それを元にHOST一覧を作成するもの。
gethostbyaddrという関数でHOSTを取得するのですが、時間がかかるので、MySQLで変換結果をキャッシュするようにしてあります。そのため、2回目以降は速いです。
showhost.php
<?
$ipfile = "/tmp/blockip.pbl";
$DBHOST = "localhost";
$DBNAME = "test";
$DBUSER = "test";
$DBPASS = "test";
$DB_TABLE = "showhost";
if (!($mysql = mysql_connect($DBHOST,$DBUSER,$DBPASS))) {
echo "Can't Connect DBHost $DBHOST (1)";}
if (!(mysql_select_db($DBNAME))) {
echo "Can't Connect Database $DBNAME (2)";}
$result = mysql_query('CREATE TABLE IF NOT EXISTS showhost
(id int(11) unsigned NOT NULL auto_increment, ip char(15),
host varchar(100) default NULL, PRIMARY KEY (id) )');
$excludes = file($ipfile);
print "<TABLE><TBODY>";
foreach($excludes as $exclude_ip)
{
print "<TR><TD>".chop($exclude_ip)."</TD><TD>";
print get_host(chop($exclude_ip))."</TD></TR>\n";
}
print "</TBODY></TABLE>";
exit();
//===============================================================
function get_host($ip)
{
$query = "SELECT * FROM showhost WHERE ip='".$ip."'";
$res = mysql_query($query);
$num = mysql_num_rows($res);
if ($num == 0) {
$host = gethostbyaddr($ip);
$query2 = "INSERT INTO showhost VALUES ('','$ip', '$host')";
mysql_query($query2);
$host .= ' ***NEW!!';
} else {
$row = mysql_fetch_object($res);
$host = $row->host;
}
return $host;
}
?>

