मैं काम करने के लिए पायथन में एक बोतल सर्वर प्राप्त करने की कोशिश कर रहा हूं। यहाँ मेरा कोड है:

from bottle import route, run, template
from socket import gethostname, gethostbyname
from time import sleep

ip = str(gethostbyname(gethostname()))

@route('/')
def index():
    return 'Hello World!'

run(host=ip, port=1234)

मैं इसे चलाता हूं, और अपने कंप्यूटर पर जहां मैं इसे चला रहा हूं, मैं http://127.0.1.1:1234/ पर नेविगेट करता हूं, और मेरी वेबसाइट Hello World! के साथ दिखाई देती है। हालांकि, अगर मैं इसे अपने फोन या अपनी बहन के Chromebook पर कनेक्ट करने का प्रयास करता हूं, तो यह कहता है कि वेबसाइट ने कनेक्ट करने से इंकार कर दिया। मैंने str(gethostbyname(gethostname())) को '0.0.0.0' और 'localhost' से बदलने की कोशिश की है, लेकिन किसी ने भी काम नहीं किया।

0
TheBoyne 11 सितंबर 2020, 23:39

1 उत्तर

सबसे बढ़िया उत्तर

इस लाइन से छुटकारा पाएं; यह आवश्यक नहीं है:

ip = str(gethostbyname(gethostname()))

अपनी run लाइन को इस तरह बनाएं:

run(host='0.0.0.0', port=1234)

पते 0.0.0.0 का अर्थ है "सभी पतों पर सुनें"।

अंत में, उस होस्ट के नेटवर्क पते का पता लगाएं जिस पर आपका ऐप चल रहा है। फिर उसी नेटवर्क पर अन्य डिवाइस <that ip address>:1234 से कनेक्ट होने में सक्षम होने चाहिए। एक ही नेटवर्क पर मौजूद डिवाइस केवल तभी सेवा से कनेक्ट हो पाएंगे जब आपके पास सार्वजनिक रूप से रूट करने योग्य पता हो (या यदि आपने राउटर से उपयुक्त पोर्ट को अग्रेषित करने की व्यवस्था की है जिसमें सार्वजनिक पता है)।

आप यह सुनिश्चित करना चाहेंगे कि जिस सिस्टम पर आपका ऐप चल रहा है उसमें फ़ायरवॉल नियम नहीं हैं जो अन्यथा सफल कनेक्शन को रोकेंगे।

0
larsks 12 सितंबर 2020, 02:28