note 111267 added to function.inet-pton
| From: | florian | Date: | Thu, 31 Jan 2013 18:00:06 +0000 |
| Subject: | note 111267 added to function.inet-pton | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-193469@lists.php.net to get a copy of this message | ||
Because I HAD to develop on an older version of PHP and needed IPv4 and IPv6 support on windows,
here is a replacement function that seems to work very well. djmaze(AT)dragonflycms(.)org already
made an attempt, this should be a better version. May it be useful for someone else.
<?php
//From: http://stackoverflow.com/questions/14459041/inet-pton-replacement-function-for-php-5-2-17-in-windows
function inet_pton($ip){
# ipv4
if (strpos($ip, '.') !== FALSE) {
if (strpos($ip, ':') === FALSE) $ip = pack('N',ip2long($ip));
else {
$ip = explode(':',$ip);
$ip = pack('N',ip2long($ip[count($ip)-1]));
}
}
# ipv6
elseif (strpos($ip, ':') !== FALSE) {
$ip = explode(':', $ip);
$parts=8-count($ip);
$res='';$replaced=0;
foreach ($ip as $seg) {
if ($seg!='') $res .= str_pad($seg, 4, '0', STR_PAD_LEFT);
elseif ($replaced==0) {
for ($i=0;$i<=$parts;$i++) $res.='0000';
$replaced=1;
} elseif ($replaced==1) $res.='0000';
}
$ip = pack('H'.strlen($res), $res);
}
return $ip;
}
?>
----
Server IP: 69.147.83.199
Probable Submitter: 72.190.66.176
----
Manual Page -- http://php.net/manual/en/function.inet-pton.php
Edit -- https://master.php.net/note/edit/111267
Del: integrated -- https://master.php.net/note/delete/111267/integrated
Del: useless -- https://master.php.net/note/delete/111267/useless
Del: bad code -- https://master.php.net/note/delete/111267/bad+code
Del: spam -- https://master.php.net/note/delete/111267/spam
Del: non-english -- https://master.php.net/note/delete/111267/non-english
Del: in docs -- https://master.php.net/note/delete/111267/in+docs
Del: other reasons-- https://master.php.net/note/delete/111267
Reject -- https://master.php.net/note/reject/111267
Search -- https://master.php.net/manage/user-notes.php