'PHP'에 해당되는 글 1건

  1. 2008.05.24 인터넷 사용환경(IP, Country, Brower, Language) 보기
2008.05.24 03:06

작업을 하다보면 방화벽 문제로 인하여 외부로 나가는 IP 정보를 몰라 그때 그때 코드를 작성하여 해당 정보를 얻는 경우가 종종 있습니다.  오늘은 IP 정보와 그외의 정보를 볼 수 있는 간단한 코드를 만들어 두고두고 사용하려고 합니다.

1. 나의 인터넷 사용환경은?

http://www.ihelpers.co.kr/programming/tipntech/myenv.php

2. 코드

<?
require "../../lib/ihelpers_cfg.php";

// Database 연결
$conn = mysql_connect($C_HOSTNAME, $C_UID, $C_PWD) or die ("Connection Error :" . mysql_error() );
mysql_select_db($C_DATABASE,$conn) or die ("Database Use Error : " . mysql_error() );

$remote_addr = $HTTP_SERVER_VARS["REMOTE_ADDR"];

if(!empty($remote_addr)){
 $sql = "
  SELECT * FROM IPTOCOUNTRY_T
  WHERE INET_ATON('$remote_addr') >= IPFROM AND INET_ATON('$remote_addr') <= IPTO
 ";
 $result = mysql_query($sql,$conn) or die ("SQL Error : ". mysql_error());
 $country = mysql_fetch_array($result);
 $flag = sprintf("$remote_addr ( <img src=\"/img/flag/%s.png\" alt=\"%s\"> %s )",
   strtolower($country["C2"]),$country["NAME"],$country["NAME"]);
}
?>
<html>
<head>
<title>인터넷 사용환경</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<link rel=STYLESHEET type="text/css" href="/lib/style.css">
</head>
<body>
<h4>인터넷 사용환경</h4>
<li>IP 및 국가 - <?=$flag?>
<li>브라우저 - <?=$HTTP_SERVER_VARS["HTTP_USER_AGENT"]?>
<li>사용언어 - <?=$HTTP_SERVER_VARS["HTTP_ACCEPT_LANGUAGE"]?>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write('<li>쿠키사용여부 - ' + navigator.cookieEnabled);
document.write('<li>자바사용여부 - ' + navigator.javaEnabled());
document.write('<li>해상도 - ' + screen.width + ' x ' + screen.height);
document.write('<li>색상 - ' + screen.colorDepth);
//-->
</SCRIPT>
</body>
</html>

IP 정보에 대한 국가 정보는 아래의 "국가 IP대역 자료" 를 참고하십시요.


국가 IP 대역 자료

1. 샘플

"33996344","33996351","GB","GBR","UNITED KINGDOM"
"50331648","69956103","US","USA","UNITED STATES"
"69956104","69956111","BM","BMU","BERMUDA"
"69956112","83886079","US","USA","UNITED STATES"
"94585424","94585439","SE","SWE","SWEDEN"
"100663296","121195295","US","USA","UNITED STATES"
"121195296","121195327","IT","ITA","ITALY"
...

2. 다운로드

3. 형식

  • IP 주소 처음
  • IP 주소 끝
  • 두자리 국가 코드 (  ISO 3166 )
  • 세자리 국가 코드 (  ISO 3166 )
  • 국가명 ( ISO 3166 )
mysql> desc IPTOCOUNTRY_T;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| IPFROM | double      |      | PRI | 0       |       |
| IPTO   | double      |      | PRI | 0       |       |
| C2     | varchar(2)  | YES  |     | NULL    |       |
| C3     | varchar(3)  | YES  |     | NULL    |       |
| NAME   | varchar(50) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

4. IP Number

IP Number = A x (256*256*256) + B x (256*256) + C x 256 + D

PHP 코드

$ip_number = sprintf("%u",ip2long($dotted_ip_address));

$dotted_ip_address = long2ip($ip_number);

MySQL SQL 구문

SELECT NAME FROM IPTOCOUNTRY_T
WHERE INET_ATON('$remote_addr') >= IPFROM AND INET_ATON('$remote_addr') <= IPTO


IPv4 주소 보유현황

  1. 국내 보유 IP 주소 - http://member.nida.or.kr/link/ISPIpAddress.jsp
  2. 관리자대행자별 보유 IP 주소 - http://member.nida.or.kr/link/ISPAllocation.jsp

Posted by 부니기
TAG

티스토리 툴바