주소 검색 기능을 구현하기 위해서 일단 MySQL DB에 우편번호를 Import 시켜보자.
https://www.epost.go.kr/search/zipcode/cmzcd002k01.jsp 우체국 홈페이지에 들어가서 지역별 DB를 다운받는다.

해당 파일을 다운받은 후에 압축을 풀어준다. (용량이 꽤 크다..)
파일 하나를 열어보면 칼럼명을 "|" 기준으로 나와있고 아래로 주소들이 기입되어 있다.
우편번호|시도|시도영문|시군구|시군구영문|읍면|읍면영문|도로명코드|도로명|도로명영문|지하여부|건물번호본번|건물번호부번|건물관리번호|다량배달처명|시군구용건물명|법정동코드|법정동명|리명|행정동명|산여부|지번본번|읍면동일련번호|지번부번|구우편번호|우편번호일련번호
아래 코드를 이용해서 MySQL에 zipcode 테이블을 만들어준다.
1
|
CREATE TABLE zipcode ( zipcode VARCHAR(5) NULL, sido VARCHAR(25) NULL, sido_en VARCHAR(20) NULL, sigungu VARCHAR(30) NULL, sigungu_en VARCHAR(30) NULL, eupmyun VARCHAR(20) NULL, eupmyun_en VARCHAR(25) NULL, doro_code VARCHAR(12) NULL, doro VARCHAR(40) NULL, doro_en VARCHAR(50) NULL, under_yn VARCHAR(1) NULL, buildno1 VARCHAR(5) NULL, buildno2 VARCHAR(4) NULL, buildnum VARCHAR(25) NULL, multiple VARCHAR(1) NULL, buildname VARCHAR(70) NULL, dong_code VARCHAR(10) NULL, dong VARCHAR(20) NULL, ri VARCHAR(20) NULL, dong_hj VARCHAR(30) NULL, mount_yn VARCHAR(1) NULL, jibun1 VARCHAR(4) NULL, eupmyundong_no VARCHAR(2) NULL, jibun2 VARCHAR(4) NULL, zipcode_old VARCHAR(7) NULL, zipcode_seq VARCHAR(3) NULL, idx INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
|
cs |
테이블을 만들어줬으니 데이터들을 테이블에 밀어넣어 줘야한다.
LOAD DATA 명령어를 이용해서 쉽게 데이터를 밀어넣을 수 있다.
LOAD DATA 문법은 검색해보면 알 수 있지만, 간단하게 설명하면 앞 부분부터 DB 파일(강원도.txt, 경기도.txt 등등)을 webhack DB내의 zipcode 테이블에 밀어넣을 건데 Character-set은 UTF-8이고, 필드 구분문자는 '|' 으로 나누고, 제목이 포함된 첫 줄은 생략한다.
이렇게 생각하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/강원도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/경기도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/경상남도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/경상북도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/광주광역시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/대구광역시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/대전광역시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/부산광역시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/서울특별시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/세종특별자치시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/울산광역시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/인천광역시.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/전라남도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/전라북도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/제주특별자치도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/충청남도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/var/www/html/zipcode_DB/충청북도.txt' INTO TABLE webhack.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
|
cs |
혹시라도 다운받은 파일이 UTF-8이 아니라면 먼저 UTF-8로 먼저 변환을 시켜줘야 한다.
이래도 DB에 한글이 깨진다면 MySQL 설정파일에서 Character-set을 UTF-8로 변경해줘야 한다.
'WebHacking' 카테고리의 다른 글
WebHacking - (1.1)CentOS7 MySQL 초기 root 비밀번호 설정 오류 (0) | 2022.12.23 |
---|---|
WebHacking - (8)XSS 기본 개념 정리 (0) | 2022.11.11 |
WebHacking - (6)Blind SQL Injection 공격 프로세스 정리 (0) | 2022.11.04 |
WebHacking - (5)Union/Error Based SQL Injection 공격 프로세스 정리 (0) | 2022.10.28 |
WebHacking - (4)로그인 유형별 SQL Injection을 이용한 로그인 우회 (0) | 2022.10.27 |