用PHP实现标准的IPWhois查询
由于Internet的历史原因,apin负责整个网络IP的整体规划以及北美区 还有部分非洲地区的IP分配治理,与此相应的是,whois.apin.net是IP whois的root server,标准的IP whois查询方法是,首先向whois.apin.net查询某个IP属于哪个大区,然后再向该区的whois 服务器查询此IP的whois具体信息。
目前负责 IPV4的大区
whois.arin.net 美洲区 北美
whois.apnic.net 亚太区 包括亚洲和澳大利亚
whois.ripe.net 欧洲区 欧洲/中东(西亚)/北非
whois.lacnic.net 拉美区 拉丁美洲和加勒比海区域
非洲网络的IP查询也在whois.arin.net
向某个whois服务器提交whois查询的过程
打开一个到whois服务器的43端口的连接,然后发送要查询的域名 和一个回车换行。假如要查询多个域名,请用空格分开然后从sokect中读取结果。最后服务器将自动断开连接。
用PHP实现
1.验证IP(用 ip2long代替 ereg)
2.向 whois.arin.net查询,假如数据库中没有相关信息,会给出一个Referral Server的URL,格式如下
ReferralServer:
然后根据此信息,继续查询
代码如下
whoisip.php
include_once "lang.inc.php";
$IP = isset($_GET['ip'])?$_GET['ip']:'blank';
if (-1 === ip2long($ip))
die(str_replace('%IP%', $IP, $Text['ip_invalid']));
echo GetWhois($IP);
function GetWhois($IP)
{
global $Text;
$rootwhois = 'whois.arin.net';
$buffer = str_replace('%SERVER%', $rootwhois, $Text['sock_connect']);
$buffer1 = ReadSocket($rootwhois,$IP);
if ($buffer1 !== '')
{
$whois = SubStrByTag("ReferralServer: whois://"," ",$buffer1);
//remove port number ":43";
if ( ($pos=strpos($whois,":")) !== FALSE)
{
$whois = substr($whois, 0,$pos);
}
if ($whois !== '')
{
$buffer .= str_replace('%SERVER%', $whois, $Text['sock_connect']);
$buffer .= ReadSocket($whois,$IP);
}
else
{
$buffer .= $buffer1;
}
}
return nl2br($buffer);
}
function SubStrByTag($firstTag,$secondTag,&$longStr)
{
$firstPos = strpos ($longStr,$firstTag);
$ret = '';
if ($firstPos !== FALSE)
{
$secondPos = strpos ($longStr,$secondTag,$firstPos);
if ($secondPos !== FALSE)
{
$firstPos = strlen($firstTag);
$ret = substr($longStr,$firstPos,$secondPos-$firstPos);
}
}
return $ret;
}
function ReadSocket($whois,$ip)
{
global $Text;
$buffer = '';
if (!$sock = fsockopen( $whois, 43, $errNum, $errStr, 20))
{
$buffer = str_replace('%SERVER%', $whois, $Text['sock_fail']);
}
else
{
fputs($sock,"$ip ");
//$buffer = fread($sock, 8192);
while(!feof($sock)) $buffer.=fgets($sock, 8192);
fclose($sock);
}
return $buffer;
}
?>
语言文件:
lang.inc.php
$Text = Array(
'ip_invalid'=>'I want to get a valid IP, but it is [%IP%].',
'sock_connect'=>'Ask %SERVER% ...
',
'sock_fail'=>'Cannot connect to the host:%SERVER%'
);
?>
其他有名的whois服务器
1.Tucows (whois.opensrs.net) 一次只能一个连接
dnsstuff就是查询的它
2.BulkRegister (whois.bulkregiter.net) 小心它临时封IP,假如大量连接的话
3.Network Solutions (whois.networksolutions.com) 一天只能查1000次
4.Go Daddy (whois.godaddy.com)
5.whois.abuse.net

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
