2010-08-05 4 views
5

PHP에는 도메인 이름에 대해 역방향 조회를 수행하여 도메인 이름이 호스트되는 특정 공유 호스팅 서버에서 호스트되는 웹 사이트의 수를 확인하는 기능이 있습니다. 아니면, PHP로 이것을 할 수 있습니까?PHP로 역방향 IP 조회

이제 저는 이것을 제공하는 온라인 서비스에 대해 이미 알고 있습니다. 그러나 직접 작성하는 스크립트를 작성하고 싶습니다. 나는 그것을 이해할 수 없다.

타사 서비스의 사용을 제안하지 않는 제안은 유용 할 것입니다.

+2

이전에는 AXFR에서 가능했습니다. 하지만 요즘에는 각 도메인의 신뢰할 수있는 이름 서버와 보조 이름 서버 사이에 제한이 있습니다. 마찬가지로 아파치 상태 페이지/로그 액세스를 사용하여 구성된 도메인을 잠입하는 경우는 거의 없습니다. 자, 거대한 ip-> 도메인 데이터베이스를 스스로 구축하지 않는 한 운이 없다. – mario

+0

단일 공유 호스팅 서버는 각 가상 호스트마다 서로 다른 IP 주소를 가질 수 있으므로 얻을 수있는 보고서의 신뢰성과 유용성에 대해서는 확신하지 못합니다. – stillstanding

답변

2

묻고있는 것을 할 수있는 확실한 방법은 없습니다.

DNS에서 사이트의 IP 주소 (예 : "1.5.7.9")는 "9.7.5.1.in-addr.arpa"와 같은 도메인 이름을 연결합니다. 이 역 이름에는 도메인 이름을 가리키는 PTR 레코드가있을 수 있습니다. 따라서 "example.com"은 A 레코드로 "1.5.7.9"로 매핑 될 수 있으며 "9.7.5.1.in-addr.arpa"는 "example.com"을 다시 가리킬 수 있습니다.

IP 주소 에는 두 개 이상의 PTR 레코드가 있습니다. 그러나, 일반적으로, 그들은하지 않습니다. 따라서 하나의 IP를 공유하는 모든 도메인 이름을 알 수있는 유일한 방법은 모든 도메인 이름을 검색하고 기억하는 것 (가능하지 않음)이거나 다른 소스에서 정보를 얻는 것입니다.

또한 주어진 컴퓨터에는 많은 IP가 할당되어있을 수 있습니다. 얼마나 많은 지 알 방법이 없습니다.PHP에서

0

나는 사람들이 어떻게 알 수 있는지 궁금합니다. 호스팅 된 웹 사이트는 매우 빠르게 IP에 올 수 있습니다. 분당 몇 천 개의 도메인을 추가하고 다음 분을 다시 제거하는 것은 쉽습니다.

http://pink.bikeshed.com을 보았습니까? 또는 http://red.bikeshed.com? 또는 http://white.bikeshed.com? 내 X11 rgb.txt 파일의 754 개 항목 모두를 매우 쉽게 확장 할 수 있지만 그렇게하지 않은 것으로 보입니다. 그곳에서 '새로운 웹 사이트'의 즉각적인 사용자 생성을 지원하기위한 더 많은 일이 될 것입니다 ...

0

어쩌면 틀 렸지만 생각합니다. 각 도메인 이름을 개별적으로 쿼리하고 해당 IP 주소를 저장합니다.

누군가가 특정 도메인/IP 주소를 쿼리하면 같은 IP를 공유하는 다른 모든 도메인을 표시해야합니다. 아직 도메인이 나열되지 않은 경우 IP를 확인하고 저장하면됩니다.

질의중인 도메인의 동일한 IP 주소에있는 모든 도메인을 업데이트함으로써 언급 된 @sarnold 문제를 해결하는 것도 매우 쉽고 (상대적으로 빠름) 간단히 도메인 자체 일 수도 있습니다. 하루에 1 건의 업데이트 또는 그와 같은 제한이 있습니다.

4

내가 어떻게 작동하는지 이 darkjumper

나도 몰라 알고는 파이썬에 사용할 수 ... 샘플 프로그램을하지만, 그것은 단지 당신의 소스 코드를 읽을 수 있습니다 .. 작동 파이썬과 PHP에 소프트웨어를 다시

당신은 reverseonly 옵션

./darkjumper.py -t stackoverflow.com -m reverseonly 결과를 리턴

를 -m 사용하여이 소프트웨어의 역 IP 기능을 실행 시도 할 수 있습니다

[+] Target set : stackoverflow.com 
[+] Use proxy : None 
[+] Verbocity : False 
[+] Trying reverse your target's ip... 
[+] Please wait... 
----------------------------------------- 
http://stackoverflow.com 
http://gadgets.stackexchange.com 
http://webmasters.stackexchange.com 
http://stats.stackexchange.com 
http://gaming.stackexchange.com 
http://gamedev.stackexchange.com 
http://photo.stackexchange.com 
http://cooking.stackexchange.com 
http://chat.meta.stackoverflow.com 
http://stackoverflow.com 
http://stackoverflow.com 

---------------------------------------- 
[+] Found : 12 Domains hosted at this IP 
---------------------------------------- 
+0

항상 작동하지는 않습니다. 꽤 정교한 추측, 그러나 :-). – Borealid

+0

@Borealid : 내가 이해 한 바로는 도메인의 처음 50 개 링크를 따라 가서 IP 주소와 일치 시키려고합니다. 그건 그렇게 정교하지 않은 것 같습니다. –

+0

@ Alix Axel : 내가 말했듯이, 정교한 추측. PTR 레코드를 읽는 것보다 훨씬 똑똑하지만 관련이없는 도메인의 가상 서버를 사용하면 서로를 획득하지 못합니다. – Borealid

6

$domain = gethostbyaddr($ip); 

행운을 사용!

+0

좋은. 이것은 응답이어야한다. – Drmjo

+0

@Drmjo 이것은 OP가 요청한 것을 실제로 수행하지 않으므로 응답이 아니어야합니다. – RiggsFolly

+0

@RiggsFolly 당신이 맞습니다. 거꾸로 ...하지만이 기능은 내 문제를 해결했습니다 ... – Drmjo

관련 문제