如POXY(代理服务器)要密码,那怎么编程序出去(俺知道密码)(200分)

  • 主题发起人 主题发起人 子玉
  • 开始时间 开始时间

子玉

Unregistered / Unconfirmed
GUEST, unregistred user!
如题
TNMHTTP控件好象没有这功能
是在HeaderInfo加用户名和口令吗?
我在HTTP的例程里的HeaderInfo里写上USER NAME 和PASSWORD
和POXY的所有信息(绝对正确)
在GET EXAMPLE里打上gbchinese.yahoo.com按GET出现的是

HEADER:
HTTP/1.0 407 Proxy authorization required
Proxy-agent: Netscape-Proxy/2.52
Date: Thu, 20 May 1999 23:21:13 GMT
Proxy-authenticate: basic realm="unspecified"
Content-type: text/html
Content-length: 271
Connection: keep-alive
Proxy-connection: keep-alive

Body:
<HTML><HEAD><TITLE>Proxy authorization required</TITLE></HEAD>
<BODY><H1>Proxy authorization required</H1>
Username authentication is required for using this proxy.
Either your browser does not perform proxy authorization, or your
authorization has failed.
</BODY></HTML>
这可算是送分………………
 
不应该啊.
 

提供我的两点看法

1.headerinfo中的PASSWORD是PROXY的, 我怀疑不是.

2.proxy串是否应该包含用户名及口令.

 
一、代理的用户及口令
二、知道网关吗?设上吧!
 
HTTP的口令验证不是那么简单的.你监测一下IE/NETSCAPE,
看一看它们送出的USER就知道了.
而且,PROXY可能需要不同的密码验证方案,如一般的PROXY
要求BASIC,而M$的PROXY常常要求NTLM,这都是不一样的.
对BASIC方案,HTTP协议有规定.
 
提供意见:
1。可以看一看RFC2068,是关于HTTP1.1的
2。可以用NetAnts下载一个Web页面,然后看一看他是怎么用Proxy的。

另外,我对lhz的说法表示赞同。M$的东东只能他自己用。
不过,别的proxy一般都是通用的。
 
用TCPIP32这个控件吧,
他支持proxy,而且有源码
不过俺是修改了再用的,现在
可以支持cookie了.
 
我要用的POXY又是火墙,是在UNIX上的(从里到外)
TCPIP32这个控件在那里,mail一份给我如何?mailto:kingfish@126.com
另:如何做一个类似TELNET的登陆软件?
 
Proxy的口令验证时这样的:如果用户名是abcd,口令是1234,那么浏览器就以

字符串abcd:1234加密后传给Proxy服务器,加密算法如下:

Const
Base64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';


Function Base64Encode(Value : String) : String;
Var AIn : Array[1..3] Of Byte;
AOut : Array[1..4] Of Byte;
AWork : Array[1..3] Of Byte;
I : Integer;
O : LongInt;
Begin
Result := '';
I := 1;
O := Length(Value);
Case Length(Value) Mod 3 Of
1 : Value := Value + #0 + #0;
2 : Value := Value + #0;
End;
While I < Length(Value) Do
Begin
AIn[1] := Byte(Value);
AIn[2] := Byte(Value[I+1]);
AIn[3] := Byte(Value[I+2]);

AOut[1] := Byte(AIn[1] Shr 2);
AWork[1] := Byte(AIn[1] Shl 4);
AWork[2] := Byte(AWork[1] And $30);
AWork[3] := Byte(AIn[2] Shr 4);
AOut[2] := Byte(AWork[2] Or AWork[3]);
AWork[1] := Byte(AIn[2] Shl 2);
AWork[2] := Byte(AWork[1] And $3C);
AWork[3] := Byte(AIn[3] Shr 6);
AOut[3] := Byte(AWork[2] Or AWork[3]);
AOut[4] := Byte(AIn[3] And $3F);

Inc(I, 3);
Result := Result + Base64Table[AOut[1]+1] + Base64Table[AOut[2]+1] + Base64Table[AOut[3]+1] + Base64Table[AOut[4]+1];
End;
If O Mod 3 > 0 Then
Result[Length(Result)] := '=';
If O Mod 3 = 1 Then
Result[Length(Result)-1] := '=';
End;

Function Base64Decode(Value : String) : String;
Var AIn : Array[1..4] Of Byte;
AOut : Array[1..3] Of Byte;
AWork : Array[1..3] Of Byte;
I : Integer;
C : Integer;
Begin
Result := '';
I := 1;
While I < Length(Value) Do
Begin
C := 3;
FillChar(AWork, SizeOf(AWork), #0);
FillChar(AOut, SizeOf(AWork), #0);
AIn[1] := Byte(Pos(Value,Base64Table)-1);
AIn[2] := Byte(Pos(Value[I+1],Base64Table)-1);
AIn[3] := Byte(Pos(Value[I+2],Base64Table)-1);
AIn[4] := Byte(Pos(Value[I+3],Base64Table)-1);
If Value[I+3]='=' Then
Begin
C := 2;
AIn[4] := 0;
If Value[I+2]='=' Then
Begin
C := 1;
AIn[3] := 0;
End;
End;
AWork[2] := Byte(AIn[1] Shl 2);
AWork[3] := Byte(AIn[2] Shr 4);
AOut[1] := Byte(AWork[2] Or AWork[3]);
AWork[2] := Byte(AIn[2] Shl 4);
AWork[3] := Byte(AIn[3] Shr 2);
AOut[2] := Byte(AWork[2] Or AWork[3]);
AWork[2] := Byte(AIn[3] Shl 6);
AOut[3] := Byte(AWork[2] Or AIn[4]);
Result := Result + Char(AOut[1]);
If C > 1 Then
Result := Result + Char(AOut[2]);
If C > 2 Then
Result := Result + Char(AOut[3]);
Inc(I, 4);
End;
End;

 
to yaoydong:

崇敬地问一句:
老大,你是怎样知道的?
 
yaoydong:
是通过HEADERINFO传给Proxy服务器的吗?
HEADERINFO中的UserID和password还有什么用呢?
我不需要太底层的东东。
不过还是要谢谢你
我的要求是出去就行
 
to 茶叶蛋:
我以前看过这种算法,而后用工具监测到同一个网段的数
据流后看到加密后的数据,用这种算法一试,帐号密码一目
了然,由此得知。
to 子玉:
由于我没有用这个控件编过东西,所以无从回答,抱歉了,
不过我觉得Delphi的网络控件不太好用,我一直是用的其他
控件。
 
各位:我愿意用分数和你交换你们得意的控件。
我确实急死了。
各位还有什么神兵力器如:‘监测网段的工具’我愿用分数交换。
(太贪得无咽了!但谁叫我是个新手呢?各位大哥,小弟拜托了!!!!!
!!!!!!!!!!!!!!!!!)
 
to 子玉:
'监测网段的工具'有7M,你收的下的话我就发给你.
控件我找找看吧.
 
发来吧!我的油箱容量还可以50兆以下没问题。
各位大哥实用的控件,能发来的就发来吧!!分数好说
 
to 子玉:
受到我寄给你的东东了吗?
 
刚刚看到。
发给你两个东东吧:
NetXRay,请查收
 
请发到kingfish@notes.cosbulk.com谢谢!
 
我也送你一个!
 
请问我用什么软件修改 Netxray.exe
****************************************
找到 e8 c8 50 fc ff 85 c0 74 13
改成 -- -- -- -- -- -- -- eb --
****************************************
找到 33 d2 66 85 c0 0f 95 c2 8b c2
改成 -- -- -- -- -- -- -- -- 33 c0
呢?用PCTOOLS5可以吗?
 
后退
顶部