The first is to check to see if the entry is a valid IP address and the Next is to determine if it is a Private Network IP or not!.
You can see this in action at:
http://www.my-tangled-web.net/codebank/code/ip_check.php
and the sorce for that page is at:
http://www.my-tangled-web.net/codebank/getsource.php?dir=&file=ip_check.php
Please if you test it and find a problem let me know!
Thanks
function ipcheck($ip_chk){
$parts=explode(".",$ip_chk);
if (preg_match ("/^([01]?\d\d?|2[0-4]\d|25[0-4])\.([01]?\d\d?|2[0-4]\d|25[0-4])\.([01]?\d\d?|2[0-4]\d|25[0-4])\.([01]?\d\d?|2[0-4]\d|25[0-4])$/", $ip_chk))
{
if($parts[0]==0 || $parts[0]>=255 ||$parts[1]>=255 || $parts[2]>=255 || $parts[3]>=255){
$ip_state="0";
}
elseif($parts[0]<255 && $parts[1]<255 && $parts[2]<255 && $parts[3]<255){
$ip_state="1";
}
}
else {
$ip_state=0;
}
$this="that";
return $ip_state;
}
function net_check($ip_2_chk){
$parts=explode(".",$ip_2_chk);
if($parts[0]==10){
$network="internal";
}
elseif($parts[0]==172 && $parts[1]>=16 || $parts[1]<=31){
$network="internal";
}
elseif($parts[0]==192 && $parts[1]==168){
$network="internal";
}
else {
$network="external";
}
return $network;
};
At 07:47 PM 12/4/2002 +0000, DL Neil wrote:
John, > I think it'd be hard to verify the range with a regex. ip2long and long2ip > do not validate. So, an option would be to write your own little function > that splits the $ip on the period, verifies there are 4 parts, then checks > that each part is between 1 and 255 inclusive.My other post on the subject notwithstanding, I agree. When I get time/when I get a round tuit, I'd like to do a performance test on the (short) IP RegEx against what you have outlined: explode against "." run resultant array through 0-255 validation function - and still have the semantic issues of 0.0.0.0, etc... Meantime, will sit here whistling and quietly muttering into my beard (and dreaming of tuits), =dn -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php