답변
검색 엔진 크롤러 및 사람 방문자에게 다른 콘텐츠 (예 : cloaking)를 제공하는 것은 위험한 일이며 검색된 경우 검색 엔진에 의해 처벌 될 수 있습니다.
그렇다면 제대로 유지 관리 된 "봇 목록"에 대한 링크가있는 this SO answer을 확인하십시오. USER_AGENT 문자열을 구문 분석하고이를 봇 목록과 비교해야합니다.
user-agent 속성으로 확인할 수 있습니다. 사용자 에이전트 문자열에 대한 자세한 내용은 여기를 확인하십시오. http://www.user-agents.org/ "R = Robot, crawler, spider"유형의 레코드를 표시하십시오. 이것은 보장 할 수없는 비트이며 사용자 에이전트 속성은 여러 요소에 의해 변경 될 수 있으며 100 % 신뢰할 수는 없습니다.
사용자 에이전트 또는 IP를 확인하여이를 수행 할 수 있습니다. 그것은 은 다른 사람, 덜 평판 좋은 봇에 대한 큰 사람의 사용자 에이전트를 속일 수 있기 때문에 후자를 사용하는 것이 바람직 할 수 있습니다. google et al의 경우에도 IP가 좁은 범위에있는 경향이 있기 때문에 IP를 감지 할 때 방대한 목록을 컴파일하지 않아도됩니다.
평판이 좋은 로봇에게만 관심이있는 경우. 구글, 야후, MSN/라이브/빙/뭐든 - 그것 - 오늘, 물어 등 왕복 DNS 검사를 사용할 수 있습니다.
1) 알려진 사용자 에이전트 (googlebot과 같은 알려진 부분 문자열 확인)
예 : Mozilla/5.0 (호환 가능, Googlebot/2.1, + http://www.google.com/bot.html
2) 요청한 IP에 대해 역 DNS를 수행하고 합리적인 도메인에서 온 것인지 확인하십시오.
예 : 66.249.71.202의 rdns는 crawl-66-249-71-202.googlebot.com입니다 (googlebot.com에서 매우 기쁩니다).
3) 자체 단계 2 가짜 일 수 있으므로 이제는 DNS를 확인하십시오. 2 단계에서 반환 된 결과에 대한 A 레코드를 확인하고 원래 요청한 IP를 가지고 있는지 확인하십시오.
예 : 위의 DNS는
crawl-66-249-71-202.googlebot.com입니다. A 66.249.71.202
66.249.71.202가 요청하는 IP 주소이므로 유효한 googlebot입니다.
- 1. 프레임에서 javascript가 실행 중인지 확인
- 2. 포트가 사용 중인지 확인 하시겠습니까?
- 3. 앱이 백그라운드에서 실행 중인지 확인
- 4. SGE에서 스크립트가 실행 중인지 확인
- 5. Cron 작업이 준비 서버에서 실행 중인지 확인
- 6. C# VS2010 응용 프로그램에서 디버깅 중인지 확인
- 7. 스크립트가 pythonw에서 실행 중인지 확인 하시겠습니까?
- 8. 프로세스가 명령 이름으로 실행 중인지 확인
- 9. 현재 프로세스가 실행 중인지 파이썬 확인 하시겠습니까?
- 10. 루비 스크립트가 이미 실행 중인지 확인
- 11. 코드가 Chrome 확장 프로그램으로 실행 중인지 확인
- 12. IIS에서 사이트에 액세스
- 13. 로봇이 iframe을 크롤링합니까?
- 14. 액세스 포인트 확인
- 15. LAN에서 ASP.NET 웹 사이트에 액세스
- 16. 웹 사이트에 대한 라이센스 액세스
- 17. 검색 엔진 로봇이 이미지를 읽습니까?
- 18. 로봇이 정보를 입력하는지 확인하는 방법
- 19. 오프라인 액세스. 액세스 토큰 확인 중?
- 20. libcurl을 사용하여 SFTP 사이트에 파일이 있는지 확인
- 21. 외부 웹 사이트에 특정 URL이 있는지 확인
- 22. UITableViewCell이 "스 와이프"또는 "self.editButton"에서 편집 중인지 확인
- 23. Process 클래스를 사용하여 콘솔 응용 프로그램이 아직 실행 중인지 확인
- 24. bash를 사용하여 스트리밍 서버가 가동 중인지 확인 하시겠습니까?
- 25. XBMC가 재생 중인지 여부를 쉘 스크립트에서 확인 하시겠습니까?
- 26. jQuery가 사용자 이름이 이미 사용 중인지 확인 mysql 데이터베이스
- 27. 코드가 백그라운드 스레드 또는 UI (Dispatcher) 스레드에서 실행 중인지 확인
- 28. 현재 스크립트가 개발 서버 또는 프로덕션 서버에서 실행 중인지 확인
- 29. 확인
- 30. 원격 웹 사이트에 대한 로컬 swf 액세스