try{
URL MyURL=new URL("http://www.dheart.net/ip/index.php?ip="+ip);
BufferedReader dis=new BufferedReader(new InputStreamReader(MyURL.openStream()));
while (dis.ready()) {
String s = dis.readLine(); 
Pattern p=Pattern.compile("查 询 结 果<br><br>(.*?)<p align");  
Matcher m = p.matcher(s); 
while(m.find())
{ String ms=m.group(1).trim();
return ms;

}
  }return "OK";
}
上面是程序的一段,问题就出在这个段里
在自己电脑WINDOWS上运行,结果:
*210.15.28.0/24
210.15.28.0<br>安徽省合肥市 网通
210.15.28.150<br>安徽省合肥市 网通
210.15.28.255<br>安徽省合肥市 网通
*210.15.62.0/24
........
在linux服务器上,结果:
*210.15.28.0/24
OK
OK
OK
OK
OK
OK
.........
是什么问题 ?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【cnhuai】截止到2008-06-23 18:23:29的历史汇总数据(不包括此帖):
    发帖数:47                 发帖分:958                
    结贴数:46                 结贴分:938                
    未结数:1                  未结分:20                 
    结贴率:97.87 %            结分率:97.91 %            
    值得尊敬
      

  2.   

    try{ 
    URL MyURL=new URL("http://www.dheart.net/ip/index.php?ip="+ip); 
    BufferedReader dis=new BufferedReader(new InputStreamReader(MyURL.openStream())); 
    while (dis.ready()) { 
    String s = dis.readLine(); 
    Pattern p=Pattern.compile("查 询 结 果 <br> <br>(.*?) <p align"); 
    Matcher m = p.matcher(s); 
    while(m.find()) 
    { String ms=m.group(1).trim(); 
    return ms; }
    dis.close(); 
      }return "OK"; 
    } try it
      

  3.   

    明天我去单位试试
    dis.close(); 加这个是什么原因?
      

  4.   

    to:ilrxx 
    加了dis.close();在自己电脑上运行不对
    结果是:
    *210.15.28.0/24
    210.15.28.0
    IO Exception ocurred when get information.
    210.15.28.150
    IO Exception ocurred when get information.
    IO Exception ocurred when get information.
    *210.15.62.0/24
    210.15.62.0
    IO Exception ocurred when get information.
      

  5.   

    URL MyURL=new URL("http://www.dheart.net/ip/index.php?ip="+ip); 1 你应该指定编码类型吧!2 Pattern p=Pattern.compile("查 询 结 果 <br> <br>(.*?) <p align"); 
    这里出现中文很不好,建议你注意一下文件自己的编码。你可以变成unicode看看,或者干错去掉这个标识。
      

  6.   

    我把整个代码贴出来:
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class ipjudge1 {

    public static String ipregion(String ip)
    {

    try{
    URL MyURL=new URL("http://www.dheart.net/ip/index.php?ip="+ip);
    BufferedReader dis=new BufferedReader(new InputStreamReader(MyURL.openStream()));
    while (dis.ready()) {
    String s = dis.readLine(); 
    Pattern p=Pattern.compile("查 询 结 果<br><br>(.*?)<p align");  
    Matcher m = p.matcher(s); 
    while(m.find())
    { String ms=m.group(1).trim();
    return ms;


      }return "OK";
    }
    catch(MalformedURLException e)
    {
    return "URL in wrong from,check it.";
    }
    catch(IOException e)
    {
    return("IO Exception ocurred when get information.");
    }


    }

    public static void main(String args[])
    {
    File file=new File("region");   
    File[] tempFile=file.listFiles();//读取120文件
    for(int i =0;i<tempFile.length;i++)   
    {
    try{
    String line;
    String start;
    String msk;
    String end;
    long length=150;
     
    if(tempFile[i].isFile())
    {
    FileReader fr=new FileReader("region/"+tempFile[i].getName());
    BufferedReader br=new BufferedReader(fr);
    try{
    while(br.ready()){
    line=br.readLine();

    Pattern p=Pattern.compile("(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})/([0-9][0-9])");
    Matcher m = p.matcher(line); 

    while(m.find())
    { System.out.println("*"+m.group(1).trim()+"/"+m.group(2).trim());
                            fileReader.log("*"+m.group(1).trim()+"/"+m.group(2).trim(),"length-region/"+tempFile[i].getName());
    start=m.group(1).trim();
    msk=m.group(2).trim();
    end=ipend.endip(start,msk);
    long startl=ipend.ipToLong(start);
    long endl=ipend.ipToLong(end);

    for(long j=startl;j<endl;j=j+length)
    {
    String subip=ipend.longToIP(j);
    System.out.println(subip);
    System.out.println(ipregion(subip));
                                fileReader.log(ipregion(subip),"length-region/"+tempFile[i].getName());
    }

    System.out.println(ipregion(end));
    }

    }
    }finally{
    fr.close();
    }
    }
    }catch(IOException e){
    System.out.println();
    }
    }
    }}
      

  7.   

    肯定是在中文上有问题...
    要这么用中文,你得保证你的LINUX核心环境是GBK,UNICODE才行
      

  8.   

    to:beiouwolf 
    不是很理解你的意思
    网页里面就显示的中文啊 
    并且我要的是IP地址的所属区域
    也必须要显示的是中文
      

  9.   

    to:beiouwolf 
    根据你的意思
    最好的处理是不要用中文去判断我把Pattern p=Pattern.compile("查 询 结 果 <br> <br>(.*?) <p align"); 
    改成Pattern p=Pattern.compile("<br> <br>(.*?) <p align"); 0K变成
    *202.206.0.0/16
    202.206.0.0<br>�ӱ���ѧ
    202.206.0.150<br>�ӱ���ѧ
    202.206.1.44<br>�ӱ���ѧ
    202.206.1.194<br>�ӱ���ѧ
    202.206.2.88<br>�ӱ���ѧ
    202.206.2.238<br>�ӱ���ѧ
    202.206.3.132<br>�ӱ���ѧ开始乱码了
      

  10.   

    现在 加段ms=new String(ms.getBytes(),"gb2312"); 变成这种乱码:
    *202.206.0.0/16
    202.206.0.0<br>锟接憋拷锟斤拷学
    202.206.0.150<br>锟接憋拷锟斤拷学
    202.206.1.44<br>锟接憋拷锟斤拷学
    202.206.1.194<br>锟接憋拷锟斤拷学
    202.206.2.88<br>锟接憋拷锟斤拷学
    202.206.2.238<br>锟接憋拷锟斤拷学
    202.206.3.132<br>锟接憋拷锟斤拷学
      

  11.   

    http://blog.csdn.net/rascalboy520/archive/2008/06/02/2503998.aspx
    在群里看到你问的,看看这个吧,这个在本机和linux上都能运行,有问题在群里问也行,呵呵,
      

  12.   

    public static String getHtml(String tempurl,String code){    try{   URL url = new URL(tempurl);    HttpURLConnection conn = (HttpURLConnection)url.openConnection();    conn.connect();    InputStream is = conn.getInputStream();    BufferedReader br = new BufferedReader(new InputStreamReader(is,code));    String line="";   StringBuffer resultBuffer = new StringBuffer();   while((line = br.readLine())!=null){     resultBuffer.append(line);    }    br.close();    is.close();    conn.disconnect();   return resultBuffer.toString();  }  catch(Exception e){}  return null; }其中,tempurl为指定的url地址,code是指定url页面的页面编码