如何知道使用了代理服务器的正确IP地址?(200分)

  • 主题发起人 主题发起人 心心
  • 开始时间 开始时间

心心

Unregistered / Unconfirmed
GUEST, unregistred user!
各位有人使用了代理服务器如何用DELPHI程序返回他的正确IP地址?
(最好给给一个好的例子!)
 
已知它的命名地址吗
如:www.abc.com?
如果是,ping一下即可。
程序实现用一个socket和它连上,然后看
remoteaddr属性即可。
 
几乎不可能.
 
//如何知道使用了代理服务器的正确IP地址

uses WinSock;

procedure TForm1.Button1Click(Sender: TObject);
var
wVersion: Word;
WSData: TWSAData;
ASocket: TSocket;
ASockAddr: TSockAddr;
aRecvBuf: array[0..332] of Char;
sCmd: string;
I: Integer;
begin
wVersion := MakeWord(2, 0);
case WSAStartup(wVersion, WSData) of
WSASYSNOTREADY:
end;
ASocket := Socket(AF_INET, SOCK_STREAM, 0);
ASockAddr.sin_family := AF_INET;
ASockAddr.sin_port := hToNs(80);
StrPCopy(aRecvBuf, Edit1.Text); // Edit1.Text = Proxy Address
ASockAddr.sin_addr.S_addr := INET_ADDR(aRecvBuf);
if Connect(ASocket, ASockAddr, SizeOf(ASockAddr)) <> 0 then
begin
CloseSocket(ASocket);
ShowMessage('Error');
Exit;
end;
sCmd := 'GET http://www.gislab.ecnu.edu.cn/delphibbs/main.htm';
StrPCopy(aRecvBuf, sCmd);
I := Length(sCmd);
aRecvBuf := #13; Inc(I);
aRecvBuf := #10; Inc(I);
aRecvBuf := #13; Inc(I);
aRecvBuf := #10; Inc(I);
aRecvBuf := #0;
Send(ASocket, aRecvBuf, I, 0);
Recv(ASocket, aRecvBuf, SizeOf(aRecvBuf) - 1, 0);
I := 0;
while I < 10 do
begin
I := I + 1;
if ((aRecvBuf = '') and (aRecvBuf[I + 1] = '2')
and (aRecvBuf[I + 2] = '0') and (aRecvBuf[I + 3] = '0')
and (aRecvBuf[I + 4] = '')) then
begin
I := 200;
Break;
end;
end;
if I <> 200 then
begin
CloseSocket(ASocket);
ShowMessage('Proxy Error'); // may be Access Denied
Exit;
end;
ShowMessage('OK'); // proper proxy address
end;
 
我都被告糊涂了:
事项知道使用了代理服务器的IP地址是否正确?
or 用DELPHI程序返回某个代理服务器的正确IP地址?
 
既然代理了,想知道就难了。还是CAKK说得对。
 
非常感谢各位的回签,请继续,还为什么办法吗?
 
通过代理时,实际上去连接的是代理机器,和内部机器一点关系没有.
代理不会把内部信息带出去的.

干脆你说说为什么要做这个吧! 也许还有挽救办法.
 
我的一个朋友他是通过代理服务器上网的他说用代理服务器上网的不可能查到他的IP号我想通过这个例子学习一下网络知识谢谢,各位都有分但要参与讨论!(不够我再加)。
 
不对的吧,我忘了是哪个聊天室了,我拿代理用“网管他爹”登录,后来被踢
出来,换了一个代理还是拒绝登录!
:=)
 
你是想得到他的代理服务地址呢?还是他本机的IP?
 
我也觉得通过代理的应该没法知道ip了,听听吧。
 
前面理解错了
代理好象可以这样理解:
当你向代理201.201.10.10请求www.abc.com时,
你只和201.201.10.10建立tcp连接,然后由
201.201.10.10充当客户机向www.abc.com连接做
请求,当www.abc.com向201。201。10。10应答后
201。201。10。10再把得到的所请求的数据送回你自己。
 
TO FXB,想知道他的本机地址。
TOG662,201。201。10。10再把得到的所请求的数据送回时能否通过其它的方法得到自己的IP能得到吗?
另各位SOCKCAP32东西是什么?(没有偏题)
 
后来还是被踢出来是因为你还用“他爹”登陆,这个用户名被禁止?
后来还是被踢出来是因为使用了 cookie 所以他知道你?

使用了代理之后,只有代理服务器知道你的ip 地址
他要知道你的地址除非他crack了你的代理服务器
 
换个名字登陆的结果怎样?
如果还是删除Temporary Internet Files下所有的cookie
 
的确没法知道代理服务器后面的IP,至少从现在理论是这样!
 
要发分了谢谢大家的解释和帮助。
 
后退
顶部