게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
PHP깡통이 ASP로 변환 하는 중 질문 드립니다. |
---|
작성자: 조보영
작성일시: 2005-06-15 10:53,
조회수: 1,237
|
제가 PHP는 완전 깡통인데 제가 구현 하려고 하는게 여기 저기 다 뒤져도 PHP로된 샘플밖에 없어서 감히 질문 드립니다.
제가 구현하려고 하는 것은 접근한 아이피의 국적을 확인 하는 것입니다. DB는 http://www.ip2nation.com에서 다운로드 받아 디비에 저장되어 있습니다. 첨부 하겠습니다. 위의 URL에 들어가면 PHP와 MySQL을 사용 하여 아이피에 대해 국적 검사 하는 방법이 나와 있습니다. 그래서 제가 다음과 같이 구문을 ASP로 변환을 하였습니다. <% Function Ip2Long(c_ip) Dim b1, b2, b3, b4 Dim iip iip = c_ip b1 = Left(iip, Instr(iip, ".") -1) iip = Mid(iip, Instr(iip, ".") + 1) b2 = Left(iip, Instr(iip, ".") -1) iip = Mid(iip, Instr(iip, ".") + 1) b3 = Left(iip, Instr(iip, ".") -1) iip = Mid(iip, Instr(iip, ".") + 1) b4 = iip Ip2Long = (CInt(b1) * 256*256*256) + (CInt(b2) * 256*256) + (CInt(b3) * 256) + CInt(b4) End Function %> <% strip = "168.126.63.1" bound = Trim(CStr(Ip2Long(strip))) %> <% strConnect = "Provider=SQLOLEDB;Data Source=(local); Initial Catalog=IP2Nation; User id=sa; Password=???" set db = Server.CreateObject("ADODB.Connection") db.Open strConnect set rs = Server.CreateObject("ADODB.Recordset") SQL = "SELECT Top 1 c.country, c.code FROM ip2nationCountries c, ip2nation i WHERE i.ip<("&bound&") AND c.code=i.country ORDER BY i.ip Desc" rs.Open SQL, db %> <% country = rs("country") code = rs("code") code_image = "flags/flag_"&code&".gif" %> 이렇게 하면 168.126.63.1 즉 코넷 아이피가 일본으로 나오거든요. 또한 데이콤 쪽 아이피 203.248.252.2도 일본으로 나옵니다. 위의 URL에서 PHP로 된 소스를 보면 <?php $server = ''; // MySQL hostname $username = ''; // MySQL username $password = ''; // MySQL password $dbname = ''; // MySQL db name $db = mysql_connect($server, $username, $password) or die(mysql_error()); mysql_select_db($dbname) or die(mysql_error()); $sql = 'SELECT c.country FROM ip2nationCountries c, ip2nation i WHERE i.ip < INET_ATON("'.$_SERVER['REMOTE_ADDR'].'") AND c.code = i.country ORDER BY i.ip DESC LIMIT 0,1'; list($countryName) = mysql_fetch_row(mysql_query($sql)); // Output full country name echo $countryName; ?> 이렇게 하라고 되어 있더 군요. ip2nation에서 받은 디비가 정확하다는 가정하에 테스트한 아이피가 일본으로 나오게 된 이유는 즉 문제는 두개 정도로 좁혀 지는데, 하나는 제가 아이피를 받아서 bound로 바꾸는 함수가 잘못되었거나, 둘째는 PHP의 쿼리 부분과 ASP의 쿼리 부분이 틀리거나. 아니면 아예 원천적으로 디비가 틀리거나..... 나름데로 PHP쪽 쿼리에 대한 레퍼런스를 좀 뒤져 보긴 했으나 INET_ATON, LIMIT 0,1 이게 뭔지 도저히.... 제 소스와 PHP 소스를 좀 비교해서 틀린 부분이 있으면 지적 좀 해주시고, 디비가 필요하시면 정말 정말 번거롭고 죄송하지만 http://www.ip2nation.com에 들어가셔서 다운로드에서 디비를 다운 로드 받아 주시기 바랍니다. 감사합니다. |
IP 주소: 61.33.79.10
|
ness09 |
2005-06-15 12:00 | |
ness09 |
LIMIT는 http://dev.mysql.com/doc/mysql/en/limit-optimization.html 를 참고해 보시죠
|
2005-06-15 12:00 |
게시물 | ||||
---|---|---|---|---|
1,180 |
초보자 |
2005-06-21 | 962 | |
1,179 |
변수에 접근2 [1] |
2005-06-17 | 2,925 | |
1,178 | 2005-06-18 | 3,255 | ||
1,177 |
변수에 접근 [1] |
2005-06-17 | 2,897 | |
1,176 |
강수민 |
2005-06-17 | 990 | |
1,175 | 2005-06-18 | 2,999 | ||
1,174 |
정보문 |
2005-06-16 | 937 | |
1,173 | 2005-06-17 | 2,785 | ||
1,172 | 2005-06-16 | 3,333 | ||
1,171 | 2005-06-16 | 3,107 | ||
1,170 | 2005-06-15 | 3,388 | ||
1,169 | 2005-06-16 | 2,861 | ||
조보영 |
2005-06-15 | 1,237 | ||
1,167 |
re:지나가다가.. [3] |
오마르 |
2005-06-15 | 1,007 |
1,166 | 2005-06-15 | 2,802 | ||
1,165 |
천사 |
2005-06-13 | 852 | |
1,164 | 2005-06-13 | 2,855 | ||
1,163 |
천사 |
2005-06-13 | 855 | |
1,162 | 2005-06-11 | 2,762 | ||
1,161 | 2005-06-11 | 2,891 | ||
1,160 | 2005-06-10 | 2,714 | ||
1,159 | 2005-06-10 | 2,788 | ||
1,158 |
파일큐브 질문이요~~ [1] |
2005-06-10 | 3,283 | |
1,156 |
정규식 좀 도와주세요 [4] |
오마르 |
2005-06-08 | 889 |
1,155 |
re: 정규식 좀 도와주세요 [1] |
2005-06-08 | 3,141 |