अपने आईपी पते द्वारा साझा सर्वर पर किसी वेबसाइट पर कैसे जाएं?


18

मेरे कुछ सवाल हैं, कृपया मदद करें:

मुट्ठी, मैं केवल टाइप करके Google खोज तक पहुंच सकता हूं http://74.125.224.211, क्योंकि यह nslookup द्वारा लौटाया गया आईपी पता है।

हालाँकि, मैं www.yahoo.com से लौटे आईपी पतों के साथ ऐसा नहीं कर सका। मैं अपने आईपी द्वारा याहू सर्च पेज पर कैसे जाऊं?

एक अन्य उदाहरण, DNS सर्वर द्वारा http://www.allaboutcircuits.comहल किया जाएगा 68.233.243.63, लेकिन अगर मैं जाता हूं, तो मुझे http://68.233.243.63"हैलो वर्ल्ड!" मिलता है।

दूसरा, किसी कारण से, मेरी वेब होस्टिंग सेवा के साथ DNS रिज़ॉल्वर में कुछ गड़बड़ है (यह ठीक नहीं होगा)) । तो जैसी आज्ञा

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

वापस होगा php_network_getaddresses: getaddrinfo failed: Name or service not known

मैं आईपी पते के साथ इसके आसपास कैसे पहुंचूं,

68.233.243.63

मेरा मतलब है, किसी तरह HTTP hostname पैरामीटर संलग्न करने के लिए get_file_contents()?

मैं इसे अपने पक्ष में (अपने कोड में) हल करना चाहूंगा, सर्वर व्यवस्थापक द्वारा कोई समस्या निवारण / समायोजन नहीं किया जाएगा।


9
वर्चुअल सर्वर के बारे में पढ़ें और कैसे एक एकल होस्ट कई वेबसाइटों को होस्ट करने में सक्षम है।
23

मुझे लगता है कि कुछ कारण है जो आप डोमेन नाम का उपयोग नहीं कर सकते हैं?
इसहाक रैबिनोविच

@ आइसाक रैबिनोविच: user1502776 का कहना है "मेरी वेब होस्टिंग सेवा के साथ DNS रिज़ॉल्वर में कुछ गड़बड़ है (यह तय नहीं होगा !!)" और "मैं इसे अपने पक्ष में (अपने कोड में) हल करना चाहूंगा, कोई समस्या निवारण / नहीं।" समायोजन सर्वर व्यवस्थापक द्वारा किया जाएगा। "
बावी_एच

3
यदि आपका सर्वर व्यवस्थापक वह बेवकूफ है, तो आपको एक अलग वेब होस्टिंग प्रदाता खोजने की आवश्यकता है।
माइकल हैम्पटन

जवाबों:


16

आपकी PHP स्क्रिप्ट में, जब आप इसे IP पते से एक्सेस करते हैं, तो आपको Host:सही डोमेन नाम के साथ अपने अनुरोध में एक हेडर भेजने की आवश्यकता होती है ।

स्टैक ओवरफ्लो पर यह सवाल बताता है कि यह कैसे करना है: /programming/356705/how-to-send-a-header-use-a-http-request-through-a-cadl-call


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 में "हेल्लो वर्ल्ड! 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

तो यह है कि आप प्रति आईपी में कई साइटें कैसे रख सकते हैं

तो मूल रूप से उत्तर है, नहीं, आप उस साइट को आईपी से प्राप्त नहीं कर पाएंगे।


मुझे वह बिंदु मिलता है, जो अकेले आईपी के लिए पर्याप्त नहीं है। लेकिन क्या कोई PHP कमांड है जो आईपी और होस्टनाम का उपयोग करता है जो मुझे दूरस्थ वेबपेज लाने के लिए प्रदान करता है? डीएनएस को कमांड को क्वेरी नहीं करना चाहिए।
user1502776

4
जबकि यह तकनीकी रूप से सटीक हो सकता है, यह प्रश्न को संबोधित नहीं करता है। यह सवाल पूछ रहा है कि किसी ज्ञात IP के साथ सर्वर से किसी ज्ञात होस्टनाम के साथ एक विशिष्ट साइट का अनुरोध कैसे किया जाए , बिना PHP स्क्रिप्ट का उपयोग करके DNS के माध्यम से आईपी पते को स्वचालित रूप से हल करने के बिना। यह नहीं पूछ रहा है कि दिए गए आईपी के अनुरूप होस्टनाम कैसे खोजा जाए। वैल्क की टिप्पणी अधिक प्रासंगिक है, क्योंकि उनके लिंक में Hostसर्वर के लिए आवश्यक हेडर पर जानकारी शामिल है जो इसे होस्ट करने वाली वेबसाइटों के बीच अंतर करने और सही सेवा देने के लिए आवश्यक है।
बॉब

5

आप कहते हैं कि आप अपने नियंत्रण के बाहर DNS सर्वर पर भरोसा करने के बजाय, होस्ट नाम और आईपी पते दोनों को मैन्युअल रूप से निर्दिष्ट करना चाहते हैं। File_get_contents प्रलेखन पर टिप्पणियों को देखते हुए, मुझे लगता है कि टिप्पणीकारों ने एक संदर्भ बनाकर ऐसी ही समस्याओं का समाधान किया है जिसमें आवश्यक होस्ट: हेडर शामिल हैं। कुछ इस तरह:

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

बेशक, ध्यान रखें कि होस्ट नाम और आईपी पते दोनों को मैन्युअल रूप से निर्दिष्ट करने का नुकसान यह है कि यदि भविष्य में आईपी पते में परिवर्तन होता है (उदाहरण के लिए, यदि साइट किसी नए होस्टिंग प्रदाता के पास जाती है), तो आपका कोड काम करना बंद कर सकता है। आप मैन्युअल रूप से आईपी पते को अपडेट करते हैं।


2

अकेले आईपी एड्रेस पर्याप्त रूप से यह पहचानने के लिए पर्याप्त नहीं है कि आप किस साइट पर जाना चाहते हैं जब एक ही पोर्ट / सर्वर पर कई वर्चुअल होस्ट चल रहे हों। उस स्थिति में, आपको 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

जहाँ आप टेलनेट कमांड और GET और होस्ट लाइन टाइप करते हैं, और फिर सर्वर से HTML स्रोत कोड प्राप्त करते हैं।

या आप कर्ल का उपयोग कर सकते हैं जहां आप विशेष रूप से हेडर ( -Hध्वज के साथ ) जोड़ते हैं ।

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

1

दूसरा, किसी कारण से, मेरी वेब होस्टिंग सेवा के साथ DNS रिज़ॉल्वर में कुछ गड़बड़ है (यह तय नहीं होगा) !!

आप क्लाइंट की ओर से एक और DNS सर्वर का उपयोग कर सकते हैं, अगर यह वेब होस्ट नहीं है - 8.8.8.8 और 8.8.8.6 Google द्वारा चलाए जाते हैं, और 4.4.4.2 एक सामान्य स्टैंडबाय है। Namebench आपको सबसे तेज़ खोजने देगा। वैकल्पिक रूप से, आप किसी प्रकार की एक प्रॉक्सी सेवा का उपयोग कर सकते हैं (मैं एक वीपीएस पर अपना खुद का रन करता हूं, या टोर का उपयोग करता हूं, लेकिन अन्य विकल्प हैं)।

चूंकि यह PHP है, इसलिए कोड को किसी अन्य सिस्टम पर चलाने का एक और आसान विकल्प होगा। Kludges बनाए रखने योग्य नहीं हैं।


ऐसा लगता है कि वह कुछ साझा होस्ट पर है, और DNS को संशोधित नहीं कर सकता है, यही कारण है कि उसके पास चेतावनी है "मैं इसे अपने पक्ष में (अपने कोड में) हल करना चाहूंगा, सर्वर व्यवस्थापक द्वारा कोई समस्या निवारण / समायोजन नहीं किया जाएगा। " मुझे नहीं लगता कि वह डीएनएस को संशोधित कर सकता है। । ।
ऐर्नी

1
वह परीक्षण करने के लिए क्लाइंट साइड पर एक वैकल्पिक डीएनएस सर्वर का उपयोग कर सकता है। यदि उसका वेब होस्ट ठीक से vhosts सेट नहीं कर रहा है, तो उसे दूसरे वेब होस्ट की आवश्यकता है।
जर्नीमैन गीक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.