2013-12-21 85 views
0

我有一個關於HTTP請求的問題。我甚至不知道這是否可能,但正試圖找出解決方案。將HTTP請求的輸出發送到另一個目的地

退房在Python這樣的功能:

def send_this(url): 

     this_browser=mechanize.Browser() 
     this_browser.set_handle_robots(False) 
     this_browser.addheaders=[('User-agent','Chrome')] 

     test_output=this_browser.open(url).read().decode("UTF-8") 
     return test_output 

所以,當我運行這個從我的機器,很明顯,返回並寫入變量translated值。

我想知道的是,有沒有辦法可以將請求發送到URL和輸出(this_browser.open(url).read().decode("UTF-8")),而不是開始寫入此變量,完全發送到另一個目的地而沒有到達回到原籍地?

這是我想要實現的圖示。

test

My MachineAnother Server都在我的控制之下。發送請求的服務器不是。

  • 首先,正在實現這個可能嗎?
  • 其次,我應該研究哪些實現/技術來實現它?
+0

相關:[是否有可能通過TCP欺騙與欺騙IP地址?](http://security.stackexchange.com/q/37481/438) – jfs

回答

2

你不能讓「上網本」的服務器在其他地方發送答覆,但你可以閱讀的答覆,並將其發送到服務器的第二HTTP連接,具有相應的接收器的腳本讀取你送什麼並以您想要的方式處理它。

+0

所以這是唯一的方法? http://imgur.com/NcA2k0S – rahuL

+0

不是唯一的,但肯定是最簡單,最直接的。 –

0

您可能會在特定的端口上偵聽這些機器並使用TCP/IP套接字,或者您可以通過PHP腳本來執行此操作,該腳本讀取由URL引用的GET(或POST)數據並將其寫入文本文件/ XML,目前在Destination上運行的程序可以識別出數據的進一步工作。

0

不,這是不可能的。至少不在HTTP的範圍內。

不同於FTP,它打開分開的數據通道來傳輸東西(因此可以做到這一點),HTTP通過單一的TCP連接完成所有的東西。所以服務器發送響應的唯一地方就是發送請求的機器。

你可以做的是連接到「另一臺服務器」,並告訴它啓動HTTP請求(並因此得到響應)。

0

你可能使用Scapy的生成與設置爲與其他機器的鼻祖詳情頁面的請求 - 應導致數據被髮送到另一臺機器的網頁請求其他機器很可能不會更新頁面,因爲它沒有預期任何數據,因爲它沒有請求任何數據。

你可能更適合在pyro上使用python來控制網頁顯示,而你的第一臺機器可能會要求遠程機器請求並顯示所需的頁面。

+0

從理論上講,如果我可以有一小部分代碼專門在另一臺機器上監聽這種請求,那會起作用嗎? – rahuL

+0

這就是pyro,https://pypi.python.org/pypi/Pyro4,爲你做的 - 它監聽遠程執行請求並運行你在本地機器上選擇的__any__ python代碼,並將結果返回給始發者。你可以推出自己的產品,但是當它爲你完成時.... –