웹마스터 팁

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));
}
제목 글쓴이 날짜
에디터 사용 옵션으로 처리하기[BOARD MODULE][ver 1.0.1][Page4-4] 대암지기 2008.04.08
에디터 사용 옵션으로 처리하기[EDITOR MODULE][ver 1.0.1][Page4-3] 대암지기 2008.04.08
에디터 사용 옵션으로 처리하기[기타 MODULE][ver 1.0.1][Page4-2] 대암지기 2008.04.08
에디터 사용 옵션으로 처리하기[안내][ver 1.0.1][Page4-1] [2] file 대암지기 2008.04.08
DIV라운드 박스를 제로보드 스킨에 적용하는 방법 [4] file 팔공산 2008.04.09
제로보드 설치 후 뭘 어떻해야 할지 깜깜할때 dharma0999 2008.04.09
[3-1차 수정]확장변수 자유롭게 내 마음대로 게시글 리스트에 표현 합시다!![ver1.0.1] [16] file 대암지기 2008.04.09
신청서 양식의 게시판에서 관리자가 아니면 게시판 리스트 안보이게 하기. [1] burster 2008.04.10
404 에러 페이지를 만들어 보자 [2] hangoon 2008.04.11
최신 댓글부터 역순으로 정렬하기 [5] [1] 쏘프티 2008.04.11
큰이미지 자동 리사이즈 안되게 하기 + 다른 갤러리 달아보기 [3] file Clanss 2008.04.12
사이트 주소 또는 title 고정시키기 [6] 하늘(skycheer) 2008.04.12
글을 읽을때 마다 조회수가 증가 하는 팁 (1.0.0↑) [5] SKYMARU 2008.04.12
블로그 카테고리 클릭시 카테고리별 리스트 형태 바꾸는 팁 [1] 조성우371 2008.04.13
회원 가입 임시 제한 일자 버그 수정 방법 [2] file 껄껄껄 2008.04.13
최근문서위젯의 제목을 누르면 게시판으로 이동 [3] file CL님 2008.04.13
FF에서 플래시 로딩 못하는 현상 해결방법 [3] hangoon 2008.04.13
오른쪽 마우스 사용금지 스크립트 [6] 하늘(skycheer) 2008.04.14
.htaccess를 이용하여 트래픽 유발시키는 IP 막기 [1] [1] 라르게덴 2008.04.15
상단로그인..? [10] 빽짱구 2008.04.15