我想使用自定义IP从Delphi中获取URL。 我正在尝试使用http://delphi.xcjc.net/viewthread.php?tid=47042 但这只接受目标IP和端口。
如何更改为网址?
答案 0 :(得分:2)
您不能通过TCP连接欺骗您的IP地址,因此无法通过欺骗性IP地址“点击”URL,因为HTTP / HTTPS使用TCP。
您无法使用TCP连接欺骗IP地址的原因是因为存在handshake with TCP connections,并且您的ACK必须包含服务器在其握手的SYN-ACK部分中发送的随机数。
如果您向服务器撒谎知道您的IP地址,您将永远不会收到SYN-ACK,因此您将无法获得完成握手所需的信息。
现在,如果你可以猜出随机数,这是一个不同的故事,而在过去,这是一种常见的策略,但是协议从那时起已经有所改进。
您可以使用UDP欺骗您的IP地址,因为它是无连接的,使用Indy UDP套接字,但是,当然,您不会从服务器获得响应。
对于Windows XP SP3或更高版本,访问原始套接字需要提升权限。这在您自己的机器上很好,但是,如果您正在开发由其他人运行的软件,您可能希望构建自己的IP堆栈以避免特权问题。
有一些服务在UDP上运行,甚至像某些游戏一样,但是,我们所知道的网络主要是TCP,所以欺骗主要是不可能的。
如果您试图伪装您的实际IP地址,请查看使用远程proxy server,它将通过第三方IP地址转发任何流量。出于所有意图和目的,您将成为代理人。
答案 1 :(得分:0)
你必须围绕我认为的代码编写自己的http包装器。
Http的工作原理是向IP地址和包含标题的端口发送文本消息,通知服务器您要检索哪个页面。
因此,在您的情况下,您需要使用URL的服务器和域部分查找IP地址,然后制作http请求消息。
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html
但请记住,如果您欺骗您的IP地址,您将不会收到任何回复,而且欺骗您的IP地址可能违反与您的ISP的合同。
可能存在图书馆,但要注意隐藏的惊喜,因为其中许多可能是由有议程的人写的;)