웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
국내 IP정보를 조회하는 클래스
2003.01.04 08:20
행복한고니님의 글
------------------------------------
/*
국내 Whois에서 해당 IP를 조회하고, 정보를 리턴해주는 클래스
만든넘 : 행복한 고니(gonom9@empal.com)
*/
class whoisClass
{
var $ip;
var $pattern = "^[[]+( IP 사용 기관 정보 )";
var $result;
//IP를 입력하고 결과값(한글) 배열을 반환한다.
function query_ip($ip){
$this->ip = $ip;
$str = @file("http://whois.nic.or.kr/whois/webapisvc/?VALUE=".$this->ip);
if(!$str) return false;
$str_num = count($str);
for($i=0 ; $i<$str_num; $i++){
if(eregi("조회하신 IP주소의 사용기관 정보는 아래와 같습니다.", $str[$i]) == 1) $Start_Capture = 13;
if($Start_Capture != 0){
switch($Start_Capture){
case 11:
$result = explode("-",ereg_replace("IP 주소 : ","",$str[$i]));
$this->result["start_ip"] = $result[0];
$this->result["end_ip"] = $result[1];
break;
case 9:
$this->result["isp"] = ereg_replace("연결 ISP명 : ","",$str[$i]);
break;
case 4:
$this->result["org_id"] = ereg_replace("기관고유번호 : ","",$str[$i]);
break;
case 3:
$this->result["org_name"] = ereg_replace("기관명 : ","",$str[$i]);
break;
case 2:
$this->result["city"] = ereg_replace("시도명 : ","",$str[$i]);
break;
case 1:
$this->result["address"] = ereg_replace("주소 : ","",$str[$i]);
}
$Start_Capture--;
}
}
return $this->result;
}
}
국내 IP자료를 긁어오기 위해서 간단히 만들어본 클래스입니다.
굳이 클래스가 필요없는 함수수준이긴 하지만...
클래스라는 넘을 만들고 싶은 나머지 그만... T^T
허접이라서 볼 것은 별로 없지만 나중에 지역별 통계가 필요해서 한번 시도명과 주소의 카테고리를 만들어두었습니다(근데 지역명이 꼭 맞아떨어지는 것만은 아니라고 하더군요... 머... 대강의 통계만 내면 되니까 상관은 없지만..).
소스가 좀 지저분한 것 같아서 바꾸고도 싶지만 역시 실력이 문제라...
정규식을 공부하던가 해야지 원...
무단개선 및 건전딴지 적극 환영입니다.
단, 무단개선 후에는 저에게도 지혜를 조금 나누어 주시길... 헤헤헤.... ^^;;
------------------------------------
/*
국내 Whois에서 해당 IP를 조회하고, 정보를 리턴해주는 클래스
만든넘 : 행복한 고니(gonom9@empal.com)
*/
class whoisClass
{
var $ip;
var $pattern = "^[[]+( IP 사용 기관 정보 )";
var $result;
//IP를 입력하고 결과값(한글) 배열을 반환한다.
function query_ip($ip){
$this->ip = $ip;
$str = @file("http://whois.nic.or.kr/whois/webapisvc/?VALUE=".$this->ip);
if(!$str) return false;
$str_num = count($str);
for($i=0 ; $i<$str_num; $i++){
if(eregi("조회하신 IP주소의 사용기관 정보는 아래와 같습니다.", $str[$i]) == 1) $Start_Capture = 13;
if($Start_Capture != 0){
switch($Start_Capture){
case 11:
$result = explode("-",ereg_replace("IP 주소 : ","",$str[$i]));
$this->result["start_ip"] = $result[0];
$this->result["end_ip"] = $result[1];
break;
case 9:
$this->result["isp"] = ereg_replace("연결 ISP명 : ","",$str[$i]);
break;
case 4:
$this->result["org_id"] = ereg_replace("기관고유번호 : ","",$str[$i]);
break;
case 3:
$this->result["org_name"] = ereg_replace("기관명 : ","",$str[$i]);
break;
case 2:
$this->result["city"] = ereg_replace("시도명 : ","",$str[$i]);
break;
case 1:
$this->result["address"] = ereg_replace("주소 : ","",$str[$i]);
}
$Start_Capture--;
}
}
return $this->result;
}
}
국내 IP자료를 긁어오기 위해서 간단히 만들어본 클래스입니다.
굳이 클래스가 필요없는 함수수준이긴 하지만...
클래스라는 넘을 만들고 싶은 나머지 그만... T^T
허접이라서 볼 것은 별로 없지만 나중에 지역별 통계가 필요해서 한번 시도명과 주소의 카테고리를 만들어두었습니다(근데 지역명이 꼭 맞아떨어지는 것만은 아니라고 하더군요... 머... 대강의 통계만 내면 되니까 상관은 없지만..).
소스가 좀 지저분한 것 같아서 바꾸고도 싶지만 역시 실력이 문제라...
정규식을 공부하던가 해야지 원...
무단개선 및 건전딴지 적극 환영입니다.
단, 무단개선 후에는 저에게도 지혜를 조금 나누어 주시길... 헤헤헤.... ^^;;
댓글 7
-
최강남자킹
2003.01.09 01:45
-
김홍기
2003.01.09 15:54
그래도 모르겠어요... ㅡㅡ;; 지송함다...
저 소스를 어떻게 하라는 건지요?
어디다가 붙여서 어떻게 해야지 아이피 검색이 되죠?
답변 리플과 함께
쪽지로 주시면 더욱 감솨~ ^^;;
몰라서 물어보면서 바라는 것도 많죠? ^^;; 지송... &감사~ ^^* -
아이쿠
2003.01.06 03:18
클래스는 어떻게 쓰는지몰라서 그러는데요.. ^^;
아이피 하나를 검색한다면 어떻게 해야 되나요..?
function 쓰듯이 하면 object라는 말만 나오는것 같은데요.. ^^;
쉽게 예제하나만 알려주시면 안될까요..? -
S,CAC
2003.01.06 14:35
어케 사용하는거에여 ㅡ.ㅢ; -
푸른빛
2003.01.06 15:49
사용법 :
$ip_search=new whoisClass;
$ip_result=$ip_search->query_ip("찾고싶은 아이피");
echo "ip주소 : $ip_result[start_ip]<br>$ip_result[$end_ip]<br>연결 ISP : $ip_result[isp]<br>기관 고유명 : $ip_result[org_id]<br>기관명 ; $ip_result[org_name]<br>시도명 : $ip_result[city]<br>주소 : $ip_result[address]";
위에 클래스 쓰는거 잊지마시구..
참고하실점은 국내 아이피만 된다는점 입니다.. ^^
그럼..~~~! -
아이쿠
2003.01.06 18:12
ㅋㅋ 그렇게 사용하는거였군요.. 감사 합니다. ^^; -
행복한고니
2003.01.17 03:46
제가 여기에 글을 올렸다는 것조차 까먹고 있었네요... -_-;;
푸른빛 님이 올려주신 대로 클래스를 만들어서 사용하시면 되구요...
음... 함수같은 거 페이지에 삽일할 때처럼 사용하시면 됩니다(사실 클래스라고는 하지만 함수 수준이라...). 저 클래스 내의 메소드를 사용하면 반환값이 배열로 나오는데...
푸른빛님이 올린 것처럼
$ip_result=$ip_search->query_ip("찾고싶은 아이피");
이런 소스를 사용한다면 $ip_result 에 조회한 IP에 대한 정보가 들어가게 됩니다.
그리고 각각의 배열 인덱스는...
isp, start_ip, end_ip, org_id, org_name, city, address 가 되죠.
whois 를 써보신 적 있을거에요. 거기서 그냥 정보를 뽑아오는 정도랍니다. ^^
제목 | 글쓴이 | 날짜 |
---|---|---|
초보의 php를 활용한 OneFrame(NoFrame) 홈페이지 만들기 - 3 [1] | 아이쿠 | 2002.08.30 |
초보의 php를 활용한 OneFrame(NoFrame) 홈페이지 만들기 - 4 end [15] | 아이쿠 | 2002.08.30 |
[PHP 초보에서 중수로 - 쿠키편] 1강 : 쿠키의 이해
[2]
![]() | TheMics | 2002.08.31 |
[PHP 초보에서 중수로 - 쿠키편] 2강 : 쿠키 다루기
[3]
![]() | TheMics | 2002.08.31 |
[추천 팁] 오에카키 PHP 버전으로 만들기 [19] | 소프트맨 | 2002.08.31 |
[php] 스킨 해석&출력... [2] | 엔카일 | 2002.09.01 |
디렉토리의 내용을 가져오는 방법 [2] | DHelper | 2002.09.02 |
전에 올렸던 게시판입니다. JHboard 게시판 중도 포기작품..!;
[5]
![]() | Myzzix | 2002.09.09 |
개인 서버 운영하시는분 서버 꺼졌을때 메시지 띄우기; [12] | 실버 | 2002.09.11 |
초보의 절대경로 알아내기.. #1 | 아이쿠 | 2002.09.17 |
초보의 절대경로 알아내기.. #2 [6] | 아이쿠 | 2002.09.17 |
[추천 강의] 플래시로 보는 노프레임 홈 만들기! [63] | ROBIN | 2002.09.18 |
[PHP 초보에서 중수로 - 쿠키편] 3강 : 쿠키 실전 사용
![]() | TheMics | 2002.09.21 |
[PHP...쿠키편] 4강: 쿠키 실전 프로그래밍 - 1 / 2
[2]
![]() | TheMics | 2002.09.23 |
[PHP...쿠키편] 4강: 쿠키 실전 프로그래밍 - 2 / 2
[3]
![]() | TheMics | 2002.09.23 |
1. 데이터베이스 질의어(SQL) 다루기 [4] | 한꼬마 | 2002.10.04 |
2. MYSQL 관련 함수 [2] | 한꼬마 | 2002.10.04 |
3. URL 관련 함수 [1] | 한꼬마 | 2002.10.04 |
4. 디렉토리 관련함수 [1] | 한꼬마 | 2002.10.04 |
5. 파일 처리 관련 함수 [1] | 한꼬마 | 2002.10.04 |
행복하세여~