「javaip查询」java查询ip地址

博主:adminadmin 2023-01-23 16:36:09 339

本篇文章给大家谈谈javaip查询,以及java查询ip地址对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中,如何获取真实的IP地址?

/**

* 获取客户端ip

* @param request

* @return

*/

HttpServletRequest request = ServletActionContext.getRequest();

String address = request.getHeader("X-Forwarded-For");

if (address != null this.isIpAddress(address)) {

return address;

}

return request.getRemoteAddr();

java如何查询本机ip地址和mac地址

// 获取mac地址

  public static String getMacAddress() {

    try {

      EnumerationNetworkInterface allNetInterfaces = NetworkInterface.getNetworkInterfaces();

      byte[] mac = null;

      while (allNetInterfaces.hasMoreElements()) {

        NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();

        if (netInterface.isLoopback() || netInterface.isVirtual() || !netInterface.isUp()) {

          continue;

        } else {

          mac = netInterface.getHardwareAddress();

          if (mac != null) {

            StringBuilder sb = new StringBuilder();

            for (int i = 0; i  mac.length; i++) {

              sb.append(String.format("%02X%s", mac[i], (i  mac.length - 1) ? "-" : ""));

            }

            if (sb.length()  0) {

              return sb.toString();

            }

          }

        }

      }

    } catch (Exception e) {

      _logger.error("MAC地址获取失败", e);

    }

    return "";

  }

 

  // 获取ip地址

  public static String getIpAddress() {

    try {

      EnumerationNetworkInterface allNetInterfaces = NetworkInterface.getNetworkInterfaces();

      InetAddress ip = null;

      while (allNetInterfaces.hasMoreElements()) {

        NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();

        if (netInterface.isLoopback() || netInterface.isVirtual() || !netInterface.isUp()) {

          continue;

        } else {

          EnumerationInetAddress addresses = netInterface.getInetAddresses();

          while (addresses.hasMoreElements()) {

            ip = addresses.nextElement();

            if (ip != null  ip instanceof Inet4Address) {

              return ip.getHostAddress();

            }

          }

        }

      }

    } catch (Exception e) {

      _logger.error("IP地址获取失败", e);

    }

    return "";

  }

希望能帮助到你

java 怎么查看局域网的ip有哪些

点击系统桌面左下角的“开始”,然后在搜索框内输入“cmd”。

注:如果是XP系统,请依次点击“开始”再点击“运行”,接着在窗口中输入“cmd”就可以了,其它步骤相同!

在弹出的CMD命令中输入:ipconfig /all,并回车。

3

之后,我们会得到如下图的信息。

这里,我们只需要查看IPv4 地址,默认网关和DNS服务器就可以了。

如图标记的一样,IPv4 地址为我们本机的IP地址,剩余的默认网管和DNS服务器也是我们本机的默认网管和DNS地址。

Java怎样获取当前机器外网IP

java获取本机的外网ip示例:

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* 获取本机外网IP地址

* 思想是访问网站,得到返回的文本后解析出本机在外网的IP地址

* @author pieryon

*

*/

public class ExternalIpAddressFetcher {

// 外网IP提供者的网址

private String externalIpProviderUrl;

// 本机外网IP地址

private String myExternalIpAddress;

public ExternalIpAddressFetcher(String externalIpProviderUrl) {

this.externalIpProviderUrl = externalIpProviderUrl;

String returnedhtml = fetchExternalIpProviderHTML(externalIpProviderUrl);

parse(returnedhtml);

}

/**

* 从外网提供者处获得包含本机外网地址的字符串

* 从返回的字符串如下

* htmlheadtitleCurrent IP Check/title/headbodyCurrent IP Address: 123.147.226.222/body/html

* @param externalIpProviderUrl

* @return

*/

private String fetchExternalIpProviderHTML(String externalIpProviderUrl) {

// 输入流

InputStream in = null;

// 到外网提供者的Http连接

HttpURLConnection httpConn = null;

try {

// 打开连接

URL url = new URL(externalIpProviderUrl);

httpConn = (HttpURLConnection) url.openConnection();

// 连接设置

HttpURLConnection.setFollowRedirects(true);

httpConn.setRequestMethod("GET");

httpConn.setRequestProperty("User-Agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");

// 获取连接的输入流

in = httpConn.getInputStream();

byte[] bytes=new byte[1024];// 此大小可根据实际情况调整

// 读取到数组中

int offset = 0;

int numRead = 0;

while (offset bytes.length

(numRead=in.read(bytes, offset, bytes.length-offset)) = 0) {

offset += numRead;

}

// 将字节转化为为UTF-8的字符串

String receivedString=new String(bytes,"UTF-8");

// 返回

return receivedString;

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

in.close();

httpConn.disconnect();

} catch (Exception ex) {

ex.printStackTrace();

}

}

// 出现异常则返回空

return null;

}

/**

* 使用正则表达式解析返回的HTML文本,得到本机外网地址

* @param html

*/

private void parse(String html){

Pattern pattern=Pattern.compile("(\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})[.](\\d{1,3})", Pattern.CASE_INSENSITIVE);

Matcher matcher=pattern.matcher(html);

while(matcher.find()){

myExternalIpAddress=matcher.group(0);

}

}

/**

* 得到本机外网地址,得不到则为空

* @return

*/

public String getMyExternalIpAddress() {

return myExternalIpAddress;

}

public static void main(String[] args){

ExternalIpAddressFetcher fetcher=new ExternalIpAddressFetcher("");

System.out.println(fetcher.getMyExternalIpAddress());

}

}

java IP查询方法

Java编程查询IP地址归属地,可以调用淘宝提供的service查询,并且解析http请求返回的json串,代码如下:

package getAddressByIp;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import net.sf.json.JSONObject;

 

public class GetAddressByIp

{        

    /**

     * 

     * @param IP

     * @return

     */

    public static String GetAddressByIp(String IP){

        String resout = "";

        try{

         String str = getJsonContent(""+IP);

         System.out.println(str);

         JSONObject obj = JSONObject.fromObject(str);

         JSONObject obj2 =  (JSONObject) obj.get("data");

         String code = (String) obj.get("code");

         if(code.equals("0")){

             resout =  obj2.get("country")+"--" +obj2.get("area")+"--" +obj2.get("city")+"--" +obj2.get("isp");

         }else{

             resout =  "IP地址有误";

         }

        }catch(Exception e){

             

            e.printStackTrace();

             resout = "获取IP地址异常:"+e.getMessage();

        }

        return resout;

          

    }

    

    public static String getJsonContent(String urlStr)

    {

        try

        {// 获取HttpURLConnection连接对象

            URL url = new URL(urlStr);

            HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();

            // 设置连接属性

            httpConn.setConnectTimeout(3000);

            httpConn.setDoInput(true);

            httpConn.setRequestMethod("GET");

            // 获取相应码

            int respCode = httpConn.getResponseCode();

            if (respCode == 200)

            {

                return ConvertStream2Json(httpConn.getInputStream());

            }

        }

        catch (MalformedURLException e)

        {

            e.printStackTrace();

        }

        catch (IOException e)

        {

            e.printStackTrace();

        }

        return "";

    }

    

    private static String ConvertStream2Json(InputStream inputStream)

    {

        String jsonStr = "";

        // ByteArrayOutputStream相当于内存输出流

        ByteArrayOutputStream out = new ByteArrayOutputStream();

        byte[] buffer = new byte[1024];

        int len = 0;

        // 将输入流转移到内存输出流中

        try

        {

            while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)

            {

                out.write(buffer, 0, len);

            }

            // 将内存流转换为字符串

            jsonStr = new String(out.toByteArray());

        }

        catch (IOException e)

        {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return jsonStr;

    }

}

关于javaip查询和java查询ip地址的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。