You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

279 lines
8.9 KiB

7 years ago
  1. <?php
  2. function get_ip_info($q)
  3. {
  4. if( empty($q) OR $q == '0.0.0.0' OR $q == '127.0.0.1') return FALSE;
  5. $key = "2017082622061381677054";
  6. $url = "http://whois.kisa.or.kr/openapi/whois.jsp?query={$q}&key={$key}&answer=json";
  7. $query = file_get_contents($url);
  8. if( $query )
  9. {
  10. $result= json_decode($query, TRUE);
  11. $data=array();
  12. $data['countryCode'] = $result['whois']['countryCode'];
  13. $data['country'] = get_country_name($data['countryCode']);
  14. $result = isset($result['whois']['korean']) && $result['whois']['korean'] ?$result['whois']['korean'] : array();
  15. $data['addr'] = isset($result['user']['netinfo']['addr']) && $result['user']['netinfo']['addr'] ? $result['user']['netinfo']['addr'] : '' ;
  16. $data['org'] = isset($result['user']['netinfo']['orgName']) && $result['user']['netinfo']['orgName'] ? $result['user']['netinfo']['orgName'] : '';
  17. return $data;
  18. }
  19. return FALSE;
  20. }
  21. function get_country_name($code)
  22. {
  23. $code = strtoupper($code);
  24. $countryList = array(
  25. "AD" => "안도라",
  26. "AE" => "아랍에미리트",
  27. 'AF' => '아프가니스탄',
  28. "AG" => "앤티가 바부다",
  29. "AI" => "앵궐라",
  30. "AL" => "알바니아",
  31. "AM" => "아르매니아",
  32. "AN" => "네덜란드령 안틸레스",
  33. 'AO' => '앙골라',
  34. 'AQ' => '남극',
  35. 'AR' => '아르헨티나',
  36. 'AS' => '아메리칸사모아',
  37. 'AT' => '오스트리아',
  38. "AU" => "호주",
  39. 'AW' => '아루바',
  40. 'AX' => '올란드 제도',
  41. 'AZ' => '아제르바이잔',
  42. 'BA' => '보스니아 헤르체고비나',
  43. 'BB' => '바베이도스',
  44. 'BD' => '방글라데시',
  45. 'BE' => '벨기에',
  46. 'BF' => '부르키나파소',
  47. 'BG' => '불가리아',
  48. 'BH' => '바레인',
  49. 'BI' => '부룬디',
  50. 'BJ' => '베냉',
  51. 'BM' => '버뮤다',
  52. 'BN' => '브루나이',
  53. 'BO' => '볼리비아',
  54. 'BR' => '브라질',
  55. 'BS' => '바하마',
  56. 'BT' => '부탄',
  57. 'BV' => '부베 섬',
  58. 'BW' => '보츠와나',
  59. 'BY' => '벨라루스',
  60. 'BZ' => '벨리즈',
  61. 'CA' => '캐나다',
  62. 'CC' => '코코스 제도',
  63. 'CD' => '콩고 민주 공화국',
  64. 'CF' => '중앙아프리카 공화국',
  65. 'CG' => '콩고 공화국',
  66. "CH" => '스위스',
  67. "CI" => "코트디부아르",
  68. "CK" => '쿡 제도',
  69. "CL" => '칠레',
  70. "CM" => '카메룬',
  71. 'CN' => '중화인민공화국',
  72. 'CO' => '콜롬비아',
  73. 'CR' => '코스타리카',
  74. 'CS' => '세르비아 몬테네그로',
  75. 'CU' => '쿠바',
  76. 'CV' => '카보베르데',
  77. 'CX' => '크리스마스 섬',
  78. 'CY' => '키프로스',
  79. 'CZ' => '체코',
  80. 'DE' => '독일',
  81. 'DJ' => '지부티',
  82. 'DK' => '덴마크',
  83. 'DM' => '도미니카',
  84. 'DO' => '도미니카 공화국',
  85. 'DZ' => '알제리',
  86. 'EC' => '에콰도르',
  87. 'EE' => '에스토니아',
  88. 'EG' => '이지브',
  89. 'EH' => '서사하라',
  90. 'ER' => '에리트레아',
  91. 'ES' => '스페인',
  92. 'ET' => '에티오피아',
  93. 'FI' => '핀란드',
  94. 'FJ' => '피지',
  95. 'FK' => '포클랜드 제도',
  96. 'FM' => '미크로네시아 연방',
  97. 'FO' => '페로제도',
  98. 'FR' => '프랑스',
  99. 'GA' => '가봉',
  100. 'GB' => '영국',
  101. 'GD' => '그레나다',
  102. 'GE' => '그루지야',
  103. 'GF' => '프랑스령 기아나',
  104. 'GH' => '가나',
  105. 'GI' => '지브롤터',
  106. "GL" => '그린란드',
  107. "GM" => '감비아',
  108. 'GN' => '기니',
  109. 'GP' => '과들루프',
  110. 'GQ' => '적도 기니',
  111. 'GR' => '그리스',
  112. 'GS' => '사우스조지아 사우스샌드위치 제도',
  113. 'GT' => '과테말라',
  114. 'GU' => '괌',
  115. 'GW' => '기니비사우',
  116. 'GY' => '가이아나',
  117. 'HK' => '홍콩',
  118. 'HM' => '허드 맥도널드 제도',
  119. 'HN' => '온두라스',
  120. 'HR' => '크로아티아',
  121. 'HT' => '아이티',
  122. 'HU' => '헝가리',
  123. 'ID' => '인도네시아',
  124. "IE" => '아일랜드',
  125. "IL" => '이스라엘',
  126. "IN" => '인도',
  127. "IO" => '영국령 인도양 지역',
  128. "IQ" => '이라크',
  129. 'IR' => '이란',
  130. "IS" => '아이슬란드',
  131. "IT" => '이탈리아',
  132. "JM" => '자메이카',
  133. "JO" => "요르단",
  134. "JP" => '일본',
  135. "KE" => '케냐',
  136. "KG" => '키르기스스탄',
  137. "KH" => "캄보디아",
  138. "KI" => "키리바시",
  139. "KM" => "코모로",
  140. "KN" => "세인트키츠 네비스",
  141. "KP" => "조선민주주의인민공화국",
  142. "KR" => "대한민국",
  143. "KW" => "쿠웨이트",
  144. "KY" => "케이맨 제도",
  145. "KZ" => "카자흐스탄",
  146. "LA" => "라오스",
  147. "LB" => "레바논",
  148. "LC" => "세인트루시아",
  149. "LI" => "리히텐슈타인",
  150. "LK" => "스리랑카",
  151. "LR" => "라이베리아",
  152. "LS" => "레소토",
  153. "LT" => "리투아니아",
  154. "LU" => "룩셈부르크",
  155. "LV" => "라트비아",
  156. "LY" => "리비아",
  157. "MA" => "모로코",
  158. "MC" => "모나코",
  159. "MD" => "몰도바",
  160. "MG" => "마다가스카르",
  161. "MH" => "마셜 제도",
  162. "MK" => "마케도니아 공화국",
  163. "ML" => "말리",
  164. "MM" => "미얀마",
  165. "MN" => "몽골",
  166. "MO" => "마카오",
  167. "MP" => "북마리아나 제도",
  168. "MQ" => "마르티니크",
  169. "MR" => "모리타니",
  170. "MS" => "몬트세랫",
  171. "MT" => "몰타",
  172. "MU" => "모리셔스",
  173. "MV" => "몰디브",
  174. "MW" => "말라위",
  175. "MX" => "멕시코",
  176. "MY" => "말레이시아",
  177. "MZ" => "모잠비크",
  178. "NA" => "나미비아",
  179. "NC" => "누벨칼레도니",
  180. "NE" => "니제르",
  181. "NF" => "노퍽 섬",
  182. "NG" => "나이지리아",
  183. "NI" => "니카롸과",
  184. "NL" => "네덜란드",
  185. "NO" => "노르웨이",
  186. "NP" => "네팔",
  187. "NR" => "나우루",
  188. "NU" => "니우에",
  189. "NZ" => "뉴질랜드",
  190. "OM" => "오만",
  191. "PA" => "파나마",
  192. "PE" => "페루",
  193. "PF" => "프랑스령 폴리네시아",
  194. "PG" => "파푸아 뉴기니",
  195. "PH" => "필리핀",
  196. "PK" => "파키스탄",
  197. "PL" => "폴란드",
  198. "PM" => "생피에르 미클롱",
  199. "PN" => "핏메언 제도",
  200. "PR" => "푸에르토리코",
  201. "PS" => "팔레스타인",
  202. "PT" => "포르투갈",
  203. "PW" => "팔라우",
  204. "PY" => "파라과이",
  205. "QA" => "카타르",
  206. "RE" => "레위니옹",
  207. "RO" => "루마니아",
  208. "RU" => "러시아",
  209. "RW" => "르완다",
  210. "SA" => "사우디아라비아",
  211. "SB" => "솔로몬 제도",
  212. "SC" => "세이셸",
  213. "SD" => "수단",
  214. "SE" => "스웨덴",
  215. "SG" => "싱가포르",
  216. "SH" => "세인트헬레나",
  217. "SI" => "슬로베니아",
  218. "SJ" => "스발바르 얀마옌",
  219. "SK" => "슬로바키아",
  220. "SL" => "시에라리온",
  221. "SM" => "산마리노",
  222. "SN" => "세네갈",
  223. "SO" => "소말리아",
  224. "SR" => "수리남",
  225. "ST" => "상투메 프린시페",
  226. "SV" => "엘살바도르",
  227. "SY" => "시리아",
  228. "SZ" => "스와질란드",
  229. "TC" => "터크스 케이커스 제도",
  230. "TD" => "차드",
  231. "TF" => "프랑스령 나부와 남극 지역",
  232. "TG" => "토고",
  233. "TH" => "타이",
  234. "TJ" => "타자키스탄",
  235. "TK" => "토켈라우 제도",
  236. "TL" => "동티모르",
  237. "TM" => "투르크메니스탄",
  238. "TN" => "튀니지",
  239. "TO" => "통가",
  240. "TR" => "터키",
  241. "TT" => "트리니다드 토바고",
  242. "TV" => "투발루",
  243. "TW" => "대만",
  244. "TZ" => "탄자니아",
  245. "UA" => "우크라이나",
  246. "UG" => "우간다",
  247. "UM" => "미국령 군소 제도",
  248. "US" => "미국",
  249. "UY" => "우루과이",
  250. "UZ" => "우즈베키스탄",
  251. "VA" => "바티칸 시국",
  252. "VC" => "세인트빈센트 그레나딘",
  253. "VE" => "베네수엘라",
  254. "VG" => "영국령 버진아일랜드",
  255. "VI" => "미국령 버진아일랜드",
  256. "VN" => "베트남",
  257. "VU" => "바누아투",
  258. "WF" => "월리스 푸투나",
  259. "WS" => "사모아",
  260. "YE" => "예맨",
  261. "YT" => "마요트",
  262. "ZA" => "남아프리카 공화국",
  263. "ZM" => "잠비아",
  264. "ZW" => "짐바브웨"
  265. );
  266. if( !$countryList[$code] ) return $code;
  267. else return $countryList[$code];
  268. }