我对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")
)而不是开始写入此变量,被发送到另一个目的地完全没有回到原产地?
这是我想要实现的图表。
My Machine
和Another Server
都在我的控制之下。发送请求的服务器不是。
答案 0 :(得分:2)
您不能让“Internet”服务器在其他地方发送回复,但您可以阅读回复并通过第二个http连接将其发送到您的服务器,并使用相应的接收器脚本读取您发送的内容并处理它以你想要的任何方式。
答案 1 :(得分:0)
您可能会在某个端口上侦听这些计算机并使用TCP / IP套接字,或者您可以通过PHP脚本执行此操作,该脚本读取其URL引用的GET(或POST)数据并将其写入文本文件/ XML ,您当前在目的地运行的程序会识别进一步处理数据。
答案 2 :(得分:0)
不,这是不可能的。至少不在HTTP范围内。
与FTP不同,后者打开用于传输内容的单独数据通道(因此可以执行此操作),HTTP通过单个TCP连接完成所有操作。因此,服务器发送响应的唯一地方是发送请求的机器。
你可以做的是连接到“另一台服务器”并告诉它发起HTTP请求(并因此得到响应)。
答案 3 :(得分:0)
您可以hoodwink "The Internet" server that request from "my machine" is actually coming from "another machine",以便将响应发送给它。
你可以use scapy
to spoof your ip。
正如您可能已经猜到的那样,use the approach that you've mentioned in the comment更容易:
或者直接从“其他服务器”向“互联网”服务器发送请求。
答案 4 :(得分:0)
您可能会使用scapy生成页面请求,其创建者详细信息设置为另一台计算机的详细信息 - 这应该导致数据被发送到另一台计算机但用于网络页面请求其他机器可能不会更新页面,因为它没有预期任何数据,因为它没有请求任何数据。
最好在另一台机器上使用python来控制网页显示,而第一台机器可能会要求远程机器请求并显示所需的页面。