본문 바로가기
PHP 코딩/보안

전체국가 IP 리스트중 한국 IP만 문자열로 저장하는 소스 (대략 2200개 정도됨)

by 명령어모음 2025. 5. 15.

<?php
/*
한국인터넷정보센터.한국/jsp/statboard/IPAS/ovrse/natal/IPaddrBandCurrent.jsp?nationCode1=KR
에서 2025년5월 현재 전체국가 IP 리스트를 다운 받은 ipv4.csv 파일을
한국만 뽑아서 ipv4_kr_24.csv 문자열로 저장 (대략 2200개 정도됨)

원본: 
기준일자,국가코드,시작IP,끝IP,PREFIX,할당일자
20160515,JP,14.102.132.0,14.102.135.255,/22,20100914
20160515,AU,14.102.136.0,14.102.143.255,/21,20100913
20160515,KR,14.128.128.0,14.128.255.255,/17,20100915
20160515,KR,14.129.0.0,14.129.255.255,/16,20100812
20160515,CN,14.130.0.0,14.131.255.255,/15,20100818

저장결과:
14.128.128/17
14.129.0/16


*/

$file = "ipv4.csv"; // CSV 파일 경로
$file_kr = "ipv4_kr_24.csv"; // CSV 파일 경로

// 파일을 읽기 모드로 열기
if (($handle = fopen($file, "r")) !== FALSE) {
$fp2=fopen($file_kr,"w");
echo "<xmp>";
    while (($data = fgetcsv($handle)) !== FALSE) { // CSV 파일에서 한 줄씩 읽기
        // 국가 코드가 'KR'을 포함하는지 확인
        if (strpos($data[1], "KR") !== FALSE) {
            // 데이터를 배열로 저장
            $arr = $data;

            // 시작 IP 주소와 서브넷 마스크 가져오기
            $startIp = $arr[2];
            $prefix = $arr[4];

$buff=substr($startIp,0,-2).$prefix."\n";
echo $buff;
fputs($fp2,$buff);
        }
    }
    fclose($handle); // 파일 닫기
fclose($fp2);

}

?>

ip.php
0.00MB
ipv4_kr_24.csv
0.03MB