解析IP时,类型字符串错误的获取方法未定义

时间:2013-06-27 17:39:52

标签: java network-programming

我试图在使用Swing创建的工具中将IP转换为Web地址,反之亦然。 动作监听部分在这里

public void actionPerformed(ActionEvent e)
{
    if(e.getSource()==check1)
    {
        String ipresult,queryip=inputip.getText();

        try
        {
            InetAddress ip1=InetAddress.getByName(queryip);
            ipresult=queryip.getHostName();
            outputweb.setText(ipresult);        
        }
        catch(Exception e1)
        {
            outputweb.setText("Please check the IP address");
        }
    }

    if(e.getSource()==check2)
    {
        String webresult,queryweb=inputweb.getText();
        try
        {
            InetAddress web1=InetAddress.getByName(queryweb);
            webresult=queryweb.getHostAddress();
            outputip.setText(webresult);

        }
        catch(Exception e2)
        {

        }
    }
}

我在Eclipse上这样做,所以它说的错误 第webresult=queryweb.getHostAddress();行和ipresult=queryip.getHostName();行 是method is undefined for the type String

我做错了什么?如果有人需要,我可以在完整的代码中发布。

4 个答案:

答案 0 :(得分:3)

这看起来像问题:

InetAddress ip1=InetAddress.getByName(queryip);
ipresult=queryip.getHostName();

我怀疑你的意思是:

InetAddress ip1 = InetAddress.getByName(queryip);
ipresult = ip1.getHostName();

基本上,您在getHostName上呼叫queryip,而不是ip1。然后你对第二段代码有完全相同的错误 - 这看起来与第一篇文章非常相似,你应该考虑提取一种可以在两种情况下调用的方法。

但是,您不应该只是修复您的代码。你应该退后一步,弄清楚为什么你自己无法解决这个问题:

  • 您是否仔细阅读了错误消息?
  • 您是否仔细查看了代码,找出为什么编译器抱怨该行?
  • 您是否真正了解(从语言角度来看)代码的每一行?

不知道事情不是问题 - 如果你没有从错误中吸取教训,这是一个问题。

答案 1 :(得分:1)

下面的代码将有助于

String clientIp  =  request.getRemoteHost();
System.out.println(clientIp);
InetAddress Address =InetAddress.getByName(clientIp); 
System.out.println("Testing client name:"+Address.getHostName());

答案 2 :(得分:0)

getHostAddress()未定义String类型。它是类InetAddress的一种方法,但您在queryweb上调用它String

答案 3 :(得分:0)

queryip是

的字符串类型
 String ipresult,queryip=inputip.getText();

您收到该错误,因为字符串没有方法getHostName()。现在,如果您要初始化具有此类方法的对象,则可以调用它。只需从您的代码中猜测就可以实现:

 ipresult=ip1.getHostName();

你应该有一个具有字符串字段的对象并且有一个方法getHostName()。您可能想要使用方法getHostName(String ip)来考虑静态类。这一切都取决于您需要多少InetAddress对象