웹마스터 팁

getKoreaNationIpList(); 로 json 파일 저장 한번 하고,

echo matchKoreaNationIp('203.238.183.231') ? '한국' : '외국';

License : BSD

1
2
3
4
5
6
7
8
9
10
11
cidr 로 하면 데이터가 너무 커서 버림.
 
데이터가 json 이니 js 버전도 가능.
 
 
 
getKoreaNationIpList(); 로 json 파일 저장 한번 하고,
 
echo matchKoreaNationIp('203.238.183.231') ? '한국' : '외국';
 
License : BSD

[ ▼ 참고 Source ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function matchKoreaNationIp($ip) {
  static $nip = null;
  if(null === $nip) $nip = json_decode(file_get_contents(dirname(__FILE__).'/ipv4list.ko.json'));
  $ip = sprintf('%08x', ip2long($ip));
  $if = substr($ip, 0, 2);
  if(!isset($nip->{$if})) return false;
  $nf = &$nip->{$if};
  foreach($nf as $n) {
    if($n[0] > $ip) continue;
    if($n[1] < $ip) continue;
    return true;
  }
  return false;
}
 
function getKoreaNationIpList() {
  $xml = simplexml_load_file('http://ip.kisa.or.kr/ipas/jsp/api/ipv4list.jsp');
 
  $ips = array();
  foreach($xml->ipv4 as $ipv4) {
    $ips[$ipv4->sno.''] = $ipv4->eno;
  }
  ksort($ips);
 
  $ranges = array();
 
  $beno = 0;
  $sf = '';
  foreach($ips as $sip => $eip) {
    echo $sip, ' ', $eip, "\n";
    $sno = ip2long($sip);
    if($sno == $beno) {
      $sh = array_pop($ranges[$sf])[0];
    } else {
      $sh = sprintf('%08x', $sno);
    }
    $eno = ip2long($eip);
    $eh = sprintf('%08x', $eno);
    $sf = substr($sh, 0, 2);
    if(!isset($ranges[$sf])) $ranges[$sf] = array();
    $ranges[$sf][] = array($sh, $eh);
    $beno = $eno + 1;
  }
 
  file_put_contents(dirname(__FILE__).'/ipv4list.ko.json', json_encode($ranges));
}
제목 글쓴이 날짜
VirtualPC로 IE6.0, IE7.0을 동시에 사용해서 홈피테스트하기 [2] file D.kim 2008.01.13
홈페이지에 간단하게 뮤직플레이어와 악세사리 설치하기 file 푸른커튼 2008.01.12
계정 이전할때.. 알FTP쓰지 마세요... [11] INT10002 2008.01.11
아이프레임 리사이즈 모질라,익스플로러 사용가능하며 게시판 불러오기 [1] moonsoo 2008.01.11
zb4 게시판에 x, y를 사용하는 경우의 migration [1] 녹슨기차 2008.01.10
숫자 아이디 사용법 [6] Slick 2008.01.10
홈페이지 전반에서 오른쪽 클릭 금지하기 [12] 팬더사촌 2008.01.08
회원가입시 추가 정보 입력한것이 안 보일때 [1] 수지보더 2008.01.08
.htaccess 세팅 (index.html 없이 리다이렉션 구현) [2] :맥노턴 2008.01.04
여러 서버에서 하나의 회원목록 관리&사용 [24] 화니군 2008.01.04
관리자 페이지 않나오게 하기 [1] Diver 2008.01.04
주소 끝에 /zbxe 안 적어도 바로 /zbxe로 들어오는 법 [10] 삵살개 2008.01.03
나야나 웹호스팅에서 제로보드 XE 사용하시려면 [2] John704 2008.01.02
외부로그인-특정 페이지에 로그인창만 나타나게 하고 로그인하면 메인페이지로 이동하기 [11] 레드맨 2008.01.02
게시판 하단 검색 옵션 원하는 것만 넣기 (확장변수 포함) [10] shtjdals 2008.01.02
홈페이지에 최근글 넣고 새창으로 띄우기 happyblog 2008.01.02
내 홈페이지에 구글 검색용 애드센스 달기 file RulruRalra 2008.01.01
회원 아이디만 가지고 쪽지 보내는방법 [1] sleep2 2008.01.01
로그아웃 페이지가 심심한듯 보여서 이미지를 넣어봤습니다. [9] file moonsoo 2008.01.01
숫자 입력란에 숫자만 입력되게 하는 팁입니다^^ [1] shtjdals 2008.01.01