BLOG ARTICLE hosts | 1 ARTICLE FOUND

  1. 2008.04.18 광고 차단툴 - AntiAD (7)

우연히 키플러님의 홈페이지를 둘러 보다 센스부족이란 사이트 광고 제거 툴을 보았습니다. hosts 파일을 이용하여 광고를 제거하는 툴이었습니다. 그와 함께 자체 서버를 이용해 오류메시지를 막는 방법이 참신하였습니다. 키플러님의 아이디어를 이용해 맥용 어플리케이션으로 만들어 보았습니다.

1. 실행
사용자 삽입 이미지
처음 실행하면 좌측과 같은 패스워드 입력창이 나옵니다. Mac의 관리자(root) 패스워드를 입력하고 [확인] 버튼을 클릭합니다.

이 프로그램은 /etc/hosts 파일을 편집하고 80포트로 서버를 런칭하기 위해서 root 권한(sudo)으로 실행 됩니다. 패스워드가 일치하지 않으면 실행되지 않습니다.

2. 차단 호스트 등록
사용자 삽입 이미지

입력창에 호스트 (구글 에드센스 차단 예:pagead2.googlesyndication.com)를 입력하고 등록합니다. 등록된 호스트는 hosts 파일에 아래와 같이 기록됩니다.

127.0.0.1 localhost
255.255.255.255 broadcasthost

### START_AA
127.0.0.1 pagead2.googlesyndication.com
127.0.0.1 nv1.ad.naver.com
### END_AA

위는 제 hosts파일의 내용입니다. 어플리케이션은 '## START_AA'부터 '###END_AA'까자의 내용만 관리하며 그 외에는 영향을 주지 않습니다. 주석부분은 자동으로 생성됩니다.

IP는 hosts 파일에 등록된 내용이 아니라 현재 시스템에서 인식하고 있는 IP 주소입니다. 맥의 hosts 파일에 적용된 내용이 바로 반영되지 않는 경우가 있어 현재 어떤 IP 주소로 연결되었는가 확인할 수 있습니다. 테스트를 많이 해보지는 못했지만 적용이 바로되는 경우도 있고 10분 이상 걸리는 경우도 있었습니다. [갱신]을 클릭하여 연결된 IP를 다시 가져 올 수 있습니다.

3. 서버 실행/중지

로컬로 연결된 호스트들은 웹서비스 요청시 해당 컴퓨터로 요청하게 됩니다. 간혹 해당 페이지를 찾을 수 없다는 오류메시지가 화면에 나오는 경우가 있습니다. 이를 방지하기 위해 요청에 대해 빈문자열을 보내 주는 내장된 간단한 80포트 서버(웹서버)를 실행하거나 중지 합니다.

아파치와 같은 다른 80 포트를 사용하는 서버가 실행되고 있을 경우에는 실행되지 않습니다.

4. 사용 예


1) 등록 전
사용자 삽입 이미지

2) 네이버 광고 서버 등록 후
아래는 네이버 초기화면의 광고서버들을 모두 등록한 결과입니다. 광고는 나오지 않지만 연결실패 메시지가 나오는 곳이 있습니다.
사용자 삽입 이미지


3) 서버 실행 후
실패 메시지 없이 공백으로 출력됩니다.
사용자 삽입 이미지

한번 등록된 내용은 계속 유효하니 서버를 사용하지 않으시면, 등록이나 삭제 작업을 하지 않을 경우에는 프로그램을 실행 하실 필요는 없습니다.

광고서버의 호스트명들은 공개하지 않습니다. 역시 급조하여 테스트가 많이 부족해 오류가 있을 수 있습니다. 가장 걱정되는 부분은 오류로 인해 /etc/hosts 파일이 부적절하게 변경되었을 경우입니다. 이런 경우에는 삭제하고 '127.0.0.1 localhost'로 새로 만드시거나 hosts 파일에 등록된 내용이 많은 개발자일 경우에는 미리 백업 받아 놓으시기 바랍니다.