学校ip网关直接登陆入口在ipgw.hpu.edu.cn(好像用的是北大网关登陆程序)。是用了SSL的。如果用Java襰登陆网关程序直接用Class HttpURLConnection处理URL是明显不行的
所以我参照学校在WIN下的登陆程序,用Iris分析其发送的数据包,它是向202.196.225.21的80端口发送TCP数据包,包的主要内容如下:/cgi-bin/setip HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: IPGW Assis/0.1
Content-Length: 53
Host: IPGW.JZIT.EDU.CN
Content-Type: application/x-www-form-urlencodedpname=0205147&ppass=nortan&ipfw=2&operation=connect
于是我编程如下:
import java.net.*;
import java.io.*;public class IPgw{

public static void main(String[] args)
{
try{
//与主机建立联接
                  int port=80;
String host ="202.196.225.21";
Socket ds = new Socket(host,port);
OutputStream os = ds.getOutputStream();
if(ds.isBound()){
PrintWriter pw = new PrintWriter (os, true); pw.println ("post /cgi-bin/setip HTTP/1.0");
pw.println ("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*");
pw.println ("Accept-Language: en-us");
pw.println ("Accept-Encoding: gzip, deflate");
pw.println ("User-Agent: IPGW Assis/0.1");
pw.println ("Content-Length: 53");
pw.println ("Host: IPGW.JZIT.EDU.CN");
pw.println ("Content-Type: application/x-www-form-urlencoded");
pw.println ("pname=0205147&ppass=leegu0li&ipfw=2&operation=connect"); System.out.println("发送成功");
BufferedReader in = new BufferedReader(new InputStreamReader(ds.getInputStream())); 

System.out.println (in.readLine ());

}else
{
System.out.println("又是bound错误");
}
}catch(Exception e)
{
System.out.println(e);
}
}
}
编译成功运行,在控制台提示数据包发送成功。用Iris得到刚发的数据包与学校给的程序所发数据包一模一样,但这个程序就是得不到服务器回应信息,好像数据包丢了一样-----登陆失败!
不知道哪位兄弟写过类似的程序,本人希望得到大家的帮助。

解决方案 »

  1.   

    有可能对方对于登陆的验证不仅仅靠这个请求信息呢?
    我觉得是对方验证失败了,所以没有返回数据]或者对方响应需要一点时间
    你sleep一下看看
      

  2.   

    TO:jFresH_MaN(TM) 
    试了,还是不中,如果是错误的数据包会很快给出反映呀
    UP----再求助
      

  3.   

    既然用ssl,你怎么能用Iris得到明文的数据包呢?
      

  4.   

    TO: ll42002(灰舌)
    我是用另一个网关登陆的软件进行登陆的,他发送的是明文,我所得到的数据包是他发出的数据包,而是不直接到https://ipgw.hpu.edu.cn进行登陆