Calender
Sun Mon Tue Wed Thu Fri Sat
 123456
78910111213
14151617181920
21222324252627
28293031   
<< July 2019 >>
広告
SEARCH

SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
LINKS
PROFILE
OTHERS
SKYPE
PC: skype.jojo.jp
chat
iPad: iphone.jojo.jp
chat call
THANKS



本日:
昨日:
多言語
広告
 ▼▲ 作業日報 ▼△
    What's under the hood?
<< LBP3000B | main | mssql_pconnectで「hostname:port」形式はNG >>
【PHP】is_ip()関数 is_ipaddress()
ありそうでない関数、、
引数文字列がIPアドレスかどうかを確認します
//IPアドレスの妥当性を調査します
//引数:$strIP ... 文字列
//返値:true ...... 引数文字列はIPアドレスとして妥当 

function is_ip($strIP){

    
$result false;

    
$arrOct split('¥.',$strIP,5);

    if (
count($arrOct)==4){
        
$result true;
        foreach (
$arrOct as $n$result &= (is_numeric($n) && ($n<=255));
    }
    return 
$result;
}

テスト:
[] is NG
[ ] is NG
[.] is NG
[...] is NG
[0.0.0.0] is IPADDRESS
[0] is NG
[0.0] is NG
[0.0.0] is NG
[0.0.0.] is NG
[0.0.0.0] is IPADDRESS
[0.0.0.0.] is NG
[0.0.0.0.0] is NG
[0.0.0] is NG
[a.b.c.d] is NG
[10.10..10] is NG
[10.10.10.10] is IPADDRESS
[10.10.10a.10] is NG
[255.255.255.255] is IPADDRESS
[999.999.999.999] is NG

検証用ソース

echo "<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ' ';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '.';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '...';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');

$test ='0.0.0.0';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ='0' ;
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ='0.0' ;
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ='0.0.0' ;
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ='0.0.0.' ;
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ='0.0.0.0' ;
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ='0.0.0.0.' ;
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test ='0.0.0.0.0' ;
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '0.0.0';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test 'a.b.c.d';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '10.10..10';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '10.10.10.10';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '10.10.10a.10';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '255.255.255.255';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
$test '999.999.999.999';
echo 
"<br/>[$test] is ".(is_ip$test ) ? 'IPADDRESS':'NG');
ルーチンにするまでもないかな
| 開発関連 | 14:21 | comments(0) | trackbacks(0) |









http://blog.jojo.jp/trackback/956683