IP 주소로 공유 서버의 웹 사이트로 이동하는 방법은 무엇입니까?


18

몇 가지 질문이 있습니다. 도와주세요.

주먹,을 입력 http://74.125.224.211하면 Google 검색에 액세스 할 수 있습니다 . nslookup에서 반환 한 IP 주소이기 때문입니다.

그러나 www.yahoo.com에서 반환 한 IP 주소로는 그렇게 할 수 없었습니다. IP로 Yahoo 검색 페이지로 이동하려면 어떻게합니까?

또 다른 예 http://www.allaboutcircuits.com68.233.243.63DNS 서버로 해결 되지만로 이동 http://68.233.243.63하면 "Hello world!"가 표시됩니다.

둘째, 어떤 이유로 든 웹 호스팅 서비스의 DNS 확인자에 문제가 있습니다 (고정되지 않습니다 !!) . 그래서 같은 명령

get_file_contents("http://www.allaboutcircuits.com");

돌아올 것이다 php_network_getaddresses: getaddrinfo failed: Name or service not known

IP 주소로 어떻게 해결할 수 있습니까?

68.233.243.63

어떻게 든 HTTP 호스트 이름 매개 변수를 get_file_contents()?

내 자신의 (내 코드에서)이 문제를 해결하고 싶습니다. 서버 관리자는 문제 해결 / 조정을 수행하지 않습니다.


9
가상 서버 및 단일 호스트가 여러 웹 사이트를 호스트 할 수있는 방법 에 대해 읽으십시오 .
wallyk

도메인 이름 만 사용할 수없는 이유가 있다고 생각합니까?
Isaac Rabinovitch

@Isaac Rabinovitch : user1502776은 "웹 호스팅 서비스에 DNS 해석 프로그램에 문제가 있습니다 (고정되지 않을 것입니다 !!") 및 "내 코드 (내 코드에서)로 문제를 해결하고 싶습니다. 문제 해결 / 없음 서버 관리자가 조정합니다. "
Bavi_H

3
서버 관리자가 바보라면 다른 웹 호스팅 공급자를 찾아야합니다.
Michael Hampton

답변:



10

wallyk가 말했듯이, 그것은 가상 서버입니다

아파치에 대한이 예를 들어

<VirtualHost *:80>
ServerName example2.com
DocumentRoot C:/www/example2.com
</VirtualHost>

<VirtualHost *:80>
ServerName example.com
DocumentRoot C:/www/example.com
</VirtualHost>

c : \ www \ example.com에서 "Hello World! example.com"이라는 색인 파일을 만듭니다.

c : \ www \ example2.com에서 "Hellow World! example2.com"이라는 색인 파일을 만듭니다.

호스트 파일을 다음으로 변경하십시오.

127.0.0.1 example.com
127.0.0.1 example2.com

그런 다음 http://example.com 으로 이동 한 다음 http://example2.com 으로 이동하십시오 .

이것이 단일 IP 당 여러 사이트를 가질 수있는 방법입니다

따라서 기본적으로 대답은 IP에서 해당 사이트를 얻을 수 없다는 것입니다.


IP만으로는 충분하지 않습니다. 그러나 원격 웹 페이지를 가져 오기 위해 제공하는 IP 및 호스트 이름을 사용하는 PHP 명령이 있습니까? 이 명령은 DNS를 쿼리하지 않아야합니다.
user1502776

4
이것은 기술적으로 정확할 수 있지만 문제를 해결하지는 못합니다. 문제는 PHP 스크립트를 사용하여 DNS를 통해 IP 주소를 자동으로 확인하지 않고 알려진 IP를 가진 서버에서 알려진 호스트 이름 으로 특정 사이트를 요청하는 방법을 묻는 것 입니다. 주어진 IP에 해당하는 호스트 이름을 찾는 방법을 묻지 않습니다. wallyk의 의견은 더 관련이 있습니다. 링크에는 Host서버가 호스팅하는 웹 사이트를 구별하고 올바른 웹 사이트를 제공하는 데 필요한 헤더 정보가 포함되어 있기 때문 입니다.
Bob

5

제어 외부의 DNS 서버에 의존하는 대신 호스트 이름과 IP 주소를 모두 수동으로 지정한다고 가정합니다. file_get_contents documentation 의 주석을 보면 주석이 필요한 Host : 헤더가 포함 된 컨텍스트를 작성하여 비슷한 문제를 해결했습니다. 이 같은:

$context = stream_context_create(array('http' => array('header' => 'Host: www.allaboutcircuits.com')));
$data = file_get_contents('http://68.233.243.63/', 0, $context);

물론 호스트 이름과 IP 주소를 모두 수동으로 지정하는 단점은 나중에 IP 주소가 변경되면 (예 : 사이트가 새로운 호스팅 제공 업체로 이동하는 경우) 코드가 작동하지 않을 수 있다는 것입니다. IP 주소를 수동으로 업데이트하십시오.


2

IP 주소만으로는 여러 가상 호스트가 동일한 포트 / 서버에서 실행될 때 가고 싶은 사이트를 고유하게 식별하기에 충분하지 않습니다. 이 경우 서버 이름을 식별하는 HTTP 요청에 호스트 헤더를 지정해야합니다. 텔넷을 통해 포트 80으로 직접 연결할 수 있습니다.

$ telnet 68.233.243.63 80
Trying 68.233.243.63...
Connected to 68.233.243.63.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.allaboutcircuits.com

여기서 telnet 명령과 GET 및 Host 행을 입력 한 다음 서버에서 HTML 소스 코드를 리턴합니다.

또는 -H플래그를 사용 하여 헤더를 구체적으로 추가하는 위치에서 curl을 사용할 수 있습니다 .

curl 68.233.243.63 -H "Host: www.allaboutcircuits.com"

1

둘째, 어떤 이유로 든 웹 호스팅 서비스의 DNS 확인자에 문제가 있습니다 (고정되지 않습니다 !!)

웹 호스트가 아닌 경우 (8.8.8.8 및 8.8.8.6이 Google에 의해 실행되고 4.4.4.2가 공통 대기 모드 인 경우) 클라이언트 측에서 다른 DNS 서버를 사용할 수 있습니다. Namebench 를 사용하면 가장 빨리 찾을 수 있습니다. 또는 일종의 프록시 서비스를 사용할 수도 있습니다 (VPS에서 직접 실행하거나 Tor를 사용하지만 다른 옵션이 있습니다).

이것은 PHP이므로 다른 시스템에서 코드를 실행하는 것이 더 쉬운 옵션입니다. 슬러지는 유지 관리 할 수 ​​없습니다.


그가 일부 공유 호스트에있는 것처럼 들리고 DNS를 수정할 수없는 것 같습니다. 따라서 "내 코드에서이 문제를 해결하고 싶습니다. 서버 관리자가 문제 해결 / 조정을 수행하지 않습니다. " 나는 그가 DNS를 수정할 수 있다고 생각하지 않습니다. . .
ernie

1
클라이언트 측에서 대체 DNS 서버를 사용하여 테스트 할 수 있습니다. 웹 호스트가 가상 호스트를 올바르게 설정하지 않으면 다른 웹 호스트가 필요합니다.
Journeyman Geek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.