Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   :Ищу: скрипт whois (https://forum.antichat.xyz/showthread.php?t=121875)

4NT1P0V 22.05.2009 23:15

:Ищу: скрипт whois
 
нужен скрипт whois. Нечего нормального не могу найти, то выдает данные по Ip адресу сайта, либо бред...

Winst0n 22.05.2009 23:26

[offtop]выложи который ип до домену показывает.. оч надо ) [/offtop]

4NT1P0V 22.05.2009 23:28

Whois скрипт. Умеет делать whois запросы и пинговать адрес. Сохраняет и выводит внизу страницы последние 10 запросов.(Для этого создать в папке со скриптом текстовый файлlast.txt и поставить права на запись 777 )
whois.php
PHP код:

<?
if (!file_exists("last.txt")) { fclose(fopen("last.txt""w+")); }
function 
message($msg){
echo 
"<font face=\"verdana,arial\" size=2>$msg</font>";
flush();
}
function 
arin($target){
$server "whois.arin.net";
message("<p><b>Whois результат:</b><blockquote>");
if (!
$target gethostbyname($target))
$msg .= "Can't IP Whois without an IP address.";
else{
message("Подключаемся к $server...<br><br>");
if (! 
$sock fsockopen($server43$num$error20)){
unset(
$sock);
$msg .= "Timed-out connecting to $server (port 43)";
}
else{
fputs($sock"$target\n");
while (!
feof($sock))
$buffer .= fgets($sock10240);
fclose($sock);
}
if (
eregi("RIPE.NET"$buffer))
$nextServer "whois.ripe.net";
else if (
eregi("whois.apnic.net"$buffer))
$nextServer "whois.apnic.net";
else if (
eregi("nic.ad.jp"$buffer)){
$nextServer "whois.nic.ad.jp";
$extra "/e";
}
else if (
eregi("whois.registro.br"$buffer))
$nextServer "whois.registro.br";
if(
$nextServer){
$buffer "";
message("Deferred to specific whois server: $nextServer...<br><br>");
if(! 
$sock fsockopen($nextServer43$num$error10)){
unset(
$sock);
$msg .= "Timed-out connecting to $nextServer (port 43)";
}
else{
fputs($sock"$target$extra\n");
while (!
feof($sock))
$buffer .= fgets($sock10240);
fclose($sock);
}
}
$buffer str_replace(" ""&nbsp;"$buffer);
$msg .= nl2br($buffer);
}
$msg .= "</blockquote></p>";
message($msg);
}
function 
ping($target){
$p=shell_exec ("ping '".addslashes($target)."'");
$p=convert_cyr_string ($p"a""w");
message ("<pre>".$p."</pre>");
}
?>
<html>
<head>
<title>Whois service</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body bgcolor="#181818" text=white>
<center>
<?
error_reporting 
(0);
set_time_limit (0);
$dn=$_GET["dn"];
$dn=str_replace(" """$dn);
if (!isset (
$dn) || empty ($dn))
{
?>
<h1>Whois сервис</h1>
<h3>Введите адрес:</h3>
<form action="#" method=get>
<input type=text name=dn><input type=submit value="Do it!"><br>
<table border=0 align=center width=20%>
<tr>
<td width=20><center><input type=radio name=action value=whois checked></center></td>
<td width=80>Только Whois</td>
</tr><tr>
<td width=20><center><input type=radio name=action value=ping></center></td>
<td width=80>Ping</td>
</tr>
</table>
</form>
<br><br>
Последние 10 запросов:<br>
<?
echo implode ("<br>"file ("last.txt"))."<br><br>";
} else {
$action=$_GET["action"];
if (
$action == "whois") {
?>
<h1><?=$dn?></h1>
</center>
<br>
<?=arin($dn); ?>
<hr>
<center>
<? } else { ?>
<h1><?=$dn?></h1>
</center>
<?=ping($dn); ?>
<hr>
<center>
<?
}
$list=file($file='last.txt');
if((
$newmess=htmlspecialchars ($action).": ".htmlspecialchars ($dn)."\r\n")!=$list[0])
   {    
array_unshift ($list$newmess);
    if(isset(
$list[10])) unset ($list[10]);
    
$fp=fopen($file,'w');
    
fwrite($fpimplode('',$list));
    
fclose($fp); }
}
?>
<br>&copy; Eugen, 2007
</center>
</body>
</html>


Alekzzzander 23.05.2009 09:42

получать инфу по ip

PHP код:

<FORM action="" method="POST">
<INPUT type="text" name="ip" size="50" class="bginput" tabindex="101" value="89.111.176.35" onfocus="if (this.value == '85.101.136.235') this.value = '';" />
<input type="submit" value="Ok" class="button">
<br />
<p>Для получения информации о другом пользователе по средствам IP, введите в строку наиже IP пользователь, в формате <b>xxx.xxx.xxx.xxx</b></p>
</form>
<div align="left">
<?php
if ($ip!="")
{
        
$sock=fsockopen ("whois.ripe.net",43,$errno,$errstr);
        if (!
$sock)
        {
                echo (
$errstr($errno)."<br>");
        }
        else
        {
                
fputs ($sock,$ip."\r\n");
                while (!
feof($sock))
                {
                        echo (
str_replace(":",":&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",fgets ($sock,128))."<br>");
                }
        }
        
fclose ($sock);
}
?>
</div>
</div>



по доменам:

index.php
PHP код:

<?
require_once("whois.php");
?>
<div align="center">
<form method="get" action="index.php">
<input type="text" name="domain" class="bginput" size="50" style="font-size: 11px" tabindex="101" value="yugzone.ru" onfocus="if (this.value == 'yugzone.ru') this.value = '';" />
<input type="submit" value="WHOIS" class="button">
<br>
</div>
<p align="center">Для более корректного отображения информации о домене, следует его вводить в формате типа <b>yugzone.ru</b></p>
<div align="left">
<? include("./example.php"); ?>
</form>
</div>

example.php

PHP код:

<?
if(isset($_GET["domain"]) && strlen($_GET["domain"])>0)
{
 
$target=$_GET["domain"];
 
$whois=new whois();
 
$whois->zonelookup($target);
 if(
$whois->ERROR==0)
 {
  if(
is_array($whois->RAWINFO) && count($whois->RAWINFO)>&& $whois->FOUND==1)
  {
   echo(
"<p><b>".$target."</b><br>IP: ".$whois->IP."</p><pre>");
   foreach(
$whois->RAWINFO AS $str)
   {
    echo(
$str."\n");
   }
   echo(
"</pre>");
   echo(
"<p>DNS INFO:</p><pre>");
   foreach(
$whois->DNSINFO AS $str)
   {
    echo(
$str."\n");
   }
   echo(
"</pre>");
  }else
   {
    echo(
"<p>".$target." <b>Free</b></p>");
   }
 }else
  {
   echo(
"<p>Requirest is fail</p>");
  }
}
?>


oRb 23.05.2009 11:24

Раньше тоже получал хуиз через сокеты с whois-серверов. Но нужны были различные доменные зоны, поэтому плюнул на сокеты, решил использовать консольный whois. Он должен быть на любом *nix сервере. Если его нету, то его можно собрать или стянуть с реповзиториев. Пример
PHP код:

<?php
exec
('whois ya.ru'$out);
echo 
implode("\n",$out);
?>


fl00der 23.05.2009 11:36

Модуль на PERL, выполняющий хуис-запросы


Время: 04:17