|
inet_ntop
Converts a packed internet address to a human readable representation
(PHP 5 >= 5.1.0)
Example 1604. inet_ntop() Example<?php Code Examples / Notes » inet_ntopmirko dot steiner
i've used this nice one oneline code: <?PHP $one = 192; $two = 168; $three = 1; $four = 1; $ip = $one*pow(256,3) + $two*pow(256,2) + $three*pow(256,1) + $four*pow(256,0); echo $ip; ?> you can also put the first one, shift them by 24 bits to the right, take the secod and shift them by 16, the 3rd by 8 and put thouse all together bitwise... magicaltux
For people who need this function but don't have it, I could write a function which should give almost the same result. <?php function my_inet_ntop($ip) { if (strlen($ip)==4) { // ipv4 list(,$ip)=unpack('N',$ip); $ip=long2ip($ip); } elseif(strlen($ip)==16) { // ipv6 $ip=bin2hex($ip); $ip=substr(chunk_split($ip,4,':'),0,-1); $ip=explode(':',$ip); $res=''; foreach($ip as $seg) { while($seg{0}=='0') $seg=substr($seg,1); if ($seg!='') { $res.=($res==''?'':':').$seg; } else { if (strpos($res,'::')===false) { if (substr($res,-1)==':') continue; $res.=':'; continue; } $res.=($res==''?'':':').'0'; } } $ip=$res; } return $ip; } ?> I followed IPv6 reprenstation rules : - A series of "0"s in a 16bit block can by represented by "0". - A series of blocks containing only "0"s can be suppressed and represented by "::" (this can be done only once) (source : http://www.ipv6style.jp/en/faq/latest.shtml#2003022112 ) Example: <?php $packed = str_repeat(chr(0), 15) . chr(1); $expanded = my_inet_ntop($packed); /* Outputs: ::1 */ echo $expanded; ?> I checked in CVS (2005-04-25) and didn't find the inet_ntop function (I really needed to handle IPv6) so I implemented it myself ! |
Change Languagecheckdnsrr closelog debugger_off debugger_on define_syslog_variables dns_check_record dns_get_mx dns_get_record fsockopen gethostbyaddr gethostbyname gethostbynamel getmxrr getprotobyname getprotobynumber getservbyname getservbyport header headers_list headers_sent inet_ntop inet_pton ip2long long2ip openlog pfsockopen setcookie setrawcookie socket_get_status socket_set_blocking socket_set_timeout syslog |