웹마스터 팁
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
허접이라서 볼 것은 별로 없지만 나중에 지역별 통계가 필요해서 한번 시도명과 주소의 카테고리를 만들어두었습니다(근데 지역명이 꼭 맞아떨어지는 것만은 아니라고 하더군요... 머... 대강의 통계만 내면 되니까 상관은 없지만..).
소스가 좀 지저분한 것 같아서 바꾸고도 싶지만 역시 실력이 문제라...
정규식을 공부하던가 해야지 원...
무단개선 및 건전딴지 적극 환영입니다.
단, 무단개선 후에는 저에게도 지혜를 조금 나누어 주시길... 헤헤헤.... ^^;;