最近,我注意到,在我的新的服务器上,在我的网站上使用的gethostbyaddr(
功能,用于接收参考资料的接收人,这使网页的负荷较慢5倍。
当我去除时,问题已经解决了。
与这一功能和我新建立的Centos linux服务器混淆不清。
and what else i can use instead of this php function to get the host name of my referers.
最近,我注意到,在我的新的服务器上,在我的网站上使用的gethostbyaddr(
功能,用于接收参考资料的接收人,这使网页的负荷较慢5倍。
当我去除时,问题已经解决了。
与这一功能和我新建立的Centos linux服务器混淆不清。
and what else i can use instead of this php function to get the host name of my referers.
这可能是英国航天中心决议的一个暂时性缓慢,而且可能在以后明确。 除采用P.HP这样的系统外,实际还有别无选择的gethostbyaddr(
。 (gethostbyaddr(>
) 实质上是这一途径)
`nslookup $ip_address`
// Or
`host $ip_address`
你们可以检测到,决议是否从指挥线缓慢到:
# choose an IP address you know the resolution of...
$ host 123.123.123.123
If this doesn t return quickly you may have a DNS problem.
检查<代码>/etc/resolv.conf的内容,如果您有一台可查到的DNS服务器,则可以尝试。
我写了这一有益的替代文件,以取代Saphostbyaddr(以下简称):
//faster alternative to gethostbyaddr()
private function gethost( $ip )
{
//Make sure the input is not going to do anything unexpected
//IPs must be in the form x.x.x.x with each x as a number
if( preg_match( /^(?:25[0-5]|2[0-4]d|1dd|[1-9]d|d)(?:[.](?:25[0-5]|2[0-4]d|1dd|[1-9]d|d)){3}$/ , $ip ) )
{
$host = `host -s -W 1 $ip`;
$host = ( $host ? end( explode( , trim( trim( $host ), . ) ) ) : $ip );
if( in_array( $host, Array( reached , record , 2(SERVFAIL) , 3(NXDOMAIN) ) ) )
{
return sprintf( (error fetching domain name for %s) , $ip );
}
else
{
return $host;
}
}
else
{
return (invalid IP address) ;
}
}
The trick is to use the host function, but you have to check if the $ip is a real IP to avoid exploits. I set the timout to 1 second.
它比使用“灵感”要快得多,尽管在 lo体使用时仍然缓慢。
你们拥有什么样的网络托管? 共享、甚高频或专用。
我认为,你应当只是实施某种类型的浸 of系统,以取得霍乱(流行病)的结果。 (Well,大多数DNS服务器已建在沥滤系统中,但由于某种原因,你可能运转不灵)或试图使用替代的DNS服务器(有系统电话或改进的PHP服务器)。
不幸的是,有些草坪没有为某些吉普人地址保存逆向散射记录,因此,避风港的检查总是失败。 问题在于等待时间要等多久才结束。
一些托管服务使复发功能时差实际上很短,如果看不出成功,则将代之以主名。 这加快了步伐,防止了长期拖延显示这一功能的网页。
你们应始终仔细检查没有显示东道国名的标识,因为它们经常表明,来访者来自一个有名声的互联网活动。
http://php.net/manual/en/Function.gethostbyaddr.php rel=“nofollow noreferer”>gethostbyaddr() 不能支持停职,我的主任安排不允许空壳指挥。 我决定使用一个当地版本:
<?php
$ip = isset($_GET[ ip ]) ? filter_var($_GET[ ip ], FILTER_VALIDATE_IP) : false;
if ($ip) {
echo json_encode(gethostbyaddr($ip));
}
?>
现在,我向这个<代码>API.php发出请求。
<?php
// prepare host url
function isSecure() {
return ((isset($_SERVER[ HTTPS ]) && !empty($_SERVER[ HTTPS ]) && $_SERVER[ HTTPS ] !== off ) || $_SERVER[ SERVER_PORT ] == 443) ? s : ;
}
$protocol_host = http . isSecure() . :// . filter_input(INPUT_SERVER, HTTP_HOST , FILTER_SANITIZE_URL);
// dns request
$context = stream_context_create(array(
http => array(
timeout => 0.4,// 400 ms
)
));
$ip = long2ip(mt_rand(0, "4294967295"));
// note: the host url needs public access!
$host = json_decode(@file_get_contents($protocol_host . /hostAPI.php?ip= . $ip, false, $context), true);
// output
echo IP: . $ip . "<br>
";
echo HOST: . ($host ? $host : Timeout! ) . "<br>
";
echo Execution Time: . round((microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]) * 1000) . ms ;
?>
As you can see I set the timeout through stream_context_create().
Sample output:
IP: 56.152.200.204
HOST: Timeout!
Execution Time: 801 ms
IP: 81.139.131.130
HOST: host81-139-131-130.range81-139.btcentralplus.com
Execution Time: 52 ms
我不知道为什么,但在我设置的<代码><0.4/code>时,后面加固了800个圆顶,因此,我需要把最终停下来的价值增加一倍。 也许其他人可以评论这一点。
Warning
This creates one additional http request on your server for every request on your main script!
在从XP升级到7之后,PHP对IPv4和IPv6进行了处理(例如,127.0.0.1和1) 我已经修改了一些法典,以暂时解决这一问题。 由此可见,我正在使用IPv6号配送的<代码>gethostbyaddr,因此,在PHP的时间安排上已经停顿。
......
$ip = ip2long6($ip);
$host = gethostbyaddr($ip);
......
$host = gethostbyaddr($_SERVER[ REMOTE_ADDR ]);
你们可以利用Xdebug和WinCacheGrind(我利用XAMPP进行当地测试),寻找时间,这里是快速运行的录像辅导。
希望能拯救某个人。
I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...
<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...
I found this script online that creates a thumbnail out of a image but the thumbnail image is created with poor quality how can I improve the quality of the image. And is there a better way to create ...
如何确认来自正确来源的数字。
Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...
I wonder there is a way to post a message to a facebook business page with cURL? thanks
I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...
How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...