2011-04-07 2 views
1

안녕 얘들 아, 내 Mac에서 내 로컬 아파치 설정에 웹 사이트를 개발했습니다. 외부 도메인에 두 가지 요청을 사용하고 있습니다. geoplugin.net에 가서 현재 지구 위치 정보를 얻습니다. 로컬 설정에서 정상적으로 작동합니다.PHP는 실제 서버에서 file_get_contents가 작동하지 않습니다! localhost에서 작동합니까?

경고 : file_get_contents (http://www.geoplugin.net/php.gp?ip=185.43.32.341) [기능을 내 실제 서버에 파일을 전송할 때 웹 사이트는 다음을 인쇄 .file-get-contents] : failed 스트림 열기 : HTTP 요청에 실패했습니다! HTTP는/1.0 403 내가 여기에 무엇을 할 수

라인 (241)에 /home/.sites/74/site484/web/testsite/wp-content/themes/test/header.php 에서 금지? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

또한 데이터를 검색하지 못하는 웹 사이트에서 컬 요청을 사용하고 있습니다. 둘 다 내 로컬 마프 설정에서 잘 작동합니다.

어떤 아이디어가 있습니까?

+0

서버의 IP가 benned 일 수 있습니까? – Fivell

+1

예를 들어 google.com과 같은 다른 URL을'fopen() '할 수 있습니까? – Treffynnon

+0

google.com을 사용하면 동일한 오류 메시지가 표시됩니다. 작동하지 않습니다! – matt

답변

0

쿼리 문자열을 urlencode로 만드십시오.

또한 curl 확장을 사용하는 것이 좋습니다.

+0

컬이 작동하지 않습니다! 내 웹 사이트의 다른 스크립트에서 컬 요청을 사용하고 있습니다. fopen()도 작동하지 않습니다. – matt

1

서버는 "403 FORBIDDEN"상태 코드로 응답합니다. 따라서 file_get_contents()은 잘 작동하지만 액세스하려는 서버 (또는 프록시 또는 그 사이의 서버)가 허용하지 않습니다.

이것은 많은 이유가있을 수 있습니다. 예를 들어 (질문의 주석과 같이) 귀하는 금지되거나 (요청이 많아서) 차단되거나 차단됩니다.

+0

하지만 그건 이상합니다. 내 로컬 호스트에서 어떻게 작동하지만 실제 서버에서 작동 할 수 있습니까? 왜 작동하지 않을까요! 웹 사이트 geoplugin.net도이 사이트에서 데이터를 가져 오기 위해이 기능을 제공하기 때문에 작동하지 않는 이유는 무엇입니까? – matt

1
HTTP/1.0 403 Forbidden 

은이 파일에 액세스 할 수 없다는 의미입니다. 사용자 에이전트 헤더를 추가하십시오.

+0

사용자 에이전트 헤더 란 무엇이며 어떻게 구현합니까? – matt

+0

아마도 다른 서버에 mod_security가 실행 중일 수 있습니다.또한 잘못 구성된 클라이언트가 데이터에 액세스하는 것을 방지합니다. – powtac

1

geoplugin.com에서 계정을 만들고 제한없이 웹 서비스를 사용하려면 도메인을 구독해야합니다. 그러면 403 금지됨 오류 수신을 중단합니다. 비용에 대해 걱정하지 마십시오. 무료 서비스이고 세 곳에서 사용하고 있습니다.

0

geoPlugin이 분당 120 조회 수로 제한되어 있기 때문입니다. http://www.geoplugin.com/premium

따라서이 솔루션을 기반으로하는 모든 웹 사이트 기능이 갑자기 손상 될 수 있습니다.

www.geoplugin.net/json.gp?ip={ip}와 freegeoip.net/json/{ip}을 모두 사용하는 것이 좋습니다. 그리고 처음에 null이 반환되는지 확인하십시오 (이미 한계에 도달했음을 의미 함).

+0

이것은 ans 응답이 아닙니다 코멘트로 추가하십시오. – 4dgaurav

관련 문제