2014-02-10 52 views
0

根據我的previous question的答案,我測試了XMLPRC模塊。 同時期待通過的文件,我發現這行代碼:Python SimpleXMLPRCServer地址

server = SimpleXMLRPCServer(("localhost", 8000)) 

基本上創建是聽port 8000本地PC上的SimpleXMLRPCServer一個實例。 因此,根據文檔,客戶端都會有這樣的代碼行那裏得到的服務器地址

proxy = xmlrpclib.ServerProxy("http://localhost:8000/") 

我的問題是,如果我想連接到遠程PC(具有與運行的SimpleXMLPRCServer實例適當的方法)通過互聯網,我如何從我的客戶端PC上訪問該服務器?

proxy = xmlrpclib.ServerProxy("Address of my server?") 

我應該把服務器,而不是localhostIP address?但是,如果是這樣的話,我如何設置我的服務器電腦,使它具有靜態IP地址而不是普通的動態IP?

回答

1

一種方法 - 非常高的水平。

對於遠程PC可以通過Internet訪問,你需要有一個面向公衆的IP地址(Internet服務提供商)具有以下配置之一:

  • 你的服務器直接連接到互聯網,不會坐在局域網後面,可以使用您的公共IP地址直接聯繫。 - 如果您的系統連接到互聯網調制解調器,通常情況下就是這種情況。
  • 端口轉發:設置您的互聯網路由器(面向公衆)將端口8000上的所有請求轉發到本地網絡上的內部服務器。 - 這通常是使用無線路由器時的設置。

在這兩種情況下,您都可以通過轉到google.com並輸入「public ip」來找到面向公衆的IP地址。

假設您可以使用以下兩種方法之一直接訪問您的內部服務器,則可以使用PUBLIC_IP:8000而不是localhost訪問XMLRPC服務:8000