javaip地址,javaip地址化成整数

本文目录一览:

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

   Java中可以使用程序来获取本地ip地址和mac地址,使用InetAddress这个工具类,示例如下:

import java.net.*;

public class NetInfo {

 public static void main(String[] args) {

    new NetInfo().say();

    }

 public void say() {

   try {

   InetAddress i = InetAddress.getLocalHost();

   System.out.println(i);                  //计算机名称和IP

   System.out.println(i.getHostName());    //名称

   System.out.println(i.getHostAddress()); //只获得IP

   }

   catch(Exception e){e.printStackTrace();}

 }

}

    也可以通过命令行窗口来查看本地ip和mac地址,输入命令:ipconfig。

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地址

可以使用正则表达式验证ip地址,ip地址分为v4和v6两个版本,v4为32位,分4段,中间用.隔开,v6为128位,可分为4段32位中间用::隔开。

以下是验证类详细代码:

import java.util.regex.Pattern;

/**

* A collection of utilities relating to InetAddresses.

*/

public class InetAddressUtils {

public static void main(String[] args){

String addr=”192.168.1.2″;

System.out.println(isIPv4Address(addr));

}

private static final Pattern IPV4_PATTERN =

Pattern.compile(

“^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$”);

private static final Pattern IPV6_STD_PATTERN =

Pattern.compile(

“^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$”);

private static final Pattern IPV6_HEX_COMPRESSED_PATTERN =

Pattern.compile(

“^((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)::((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)$”);

public static boolean isIPv4Address(final String input) {

return IPV4_PATTERN.matcher(input).matches();

}

public static boolean isIPv6StdAddress(final String input) {

return IPV6_STD_PATTERN.matcher(input).matches();

}

public static boolean isIPv6HexCompressedAddress(final String input) {

return IPV6_HEX_COMPRESSED_PATTERN.matcher(input).matches();

}

public static boolean isIPv6Address(final String input) {

return isIPv6StdAddress(input) || isIPv6HexCompressedAddress(input);

}

}

java中获取本地IP地址

方法如下:

方法一,使用CMD命令:

public static String getLocalIPForCMD(){

StringBuilder sb = new StringBuilder();

String command = “cmd.exe /c ipconfig | findstr IPv4”;

try {

Process p = Runtime.getRuntime().exec(command);

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

String line = null;

while((line = br.readLine()) != null){

line = line.substring(line.lastIndexOf(“:”)+2,line.length());

sb.append(line);

}

br.close();

p.destroy();

} catch (IOException e) {

e.printStackTrace();

}

return sb.toString();

}

方法二,使用Java方法:

public static String getLocalIPForJava(){

StringBuilder sb = new StringBuilder();

try {

EnumerationNetworkInterface en = NetworkInterface.getNetworkInterfaces();

while (en.hasMoreElements()) {

NetworkInterface intf = (NetworkInterface) en.nextElement();

EnumerationInetAddress enumIpAddr = intf.getInetAddresses();

while (enumIpAddr.hasMoreElements()) {

InetAddress inetAddress = (InetAddress) enumIpAddr.nextElement();

if (!inetAddress.isLoopbackAddress() !inetAddress.isLinkLocalAddress()

inetAddress.isSiteLocalAddress()) {

sb.append(inetAddress.getHostAddress().toString()+”\n”);

}

}

}

} catch (SocketException e) { }

return sb.toString();

}

java如何获取用户真实的ip

1、如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,那么可以获取客户端的真实IP地址request.getRemoteAddr()

2、如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址,

3、如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器。

//获得客户端真实IP地址的方法一:

public String getRemortIP(HttpServletRequest request) {  

    if (request.getHeader(“x-forwarded-for”) == null) {  

        return request.getRemoteAddr();  

    }  

    return request.getHeader(“x-forwarded-for”);  

}  

//获得客户端真实IP地址的方法二:

public String getIpAddr(HttpServletRequest request) {  

    String ip = request.getHeader(“x-forwarded-for”);  

    if(ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {  

        ip = request.getHeader(“Proxy-Client-IP”);  

    }  

    if(ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {  

        ip = request.getHeader(“WL-Proxy-Client-IP”);  

    }  

    if(ip == null || ip.length() == 0 || “unknown”.equalsIgnoreCase(ip)) {  

        ip = request.getRemoteAddr();  

    }  

    return ip;  

}

java怎么获取请求的ip

java获取外网ip地址方法:

public class Main {

public static void main(String[] args) throws SocketException {

System.out.println(Main.getRealIp());

}

public static String getRealIp() throws SocketException {

String localip = null;// 本地IP,如果没有配置外网IP则返回它

String netip = null;// 外网IP

EnumerationNetworkInterface netInterfaces =

NetworkInterface.getNetworkInterfaces();

InetAddress ip = null;

boolean finded = false;// 是否找到外网IP

while (netInterfaces.hasMoreElements() !finded) {

NetworkInterface ni = netInterfaces.nextElement();

EnumerationInetAddress address = ni.getInetAddresses();

while (address.hasMoreElements()) {

ip = address.nextElement();

if (!ip.isSiteLocalAddress()

!ip.isLoopbackAddress()

ip.getHostAddress().indexOf(“:”) == -1) {// 外网IP

netip = ip.getHostAddress();

finded = true;

break;

} else if (ip.isSiteLocalAddress()

!ip.isLoopbackAddress()

ip.getHostAddress().indexOf(“:”) == -1) {// 内网IP

localip = ip.getHostAddress();

}

}

}

if (netip != null !””.equals(netip)) {

return netip;

} else {

return localip;

}

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/241028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:25
下一篇 2024-12-12 12:25

相关推荐

  • cmd看地址

    本文将从多个方面详细阐述cmd看地址,包括如何查看本机IP地址、如何查看路由器IP、如何查看DNS服务器IP等等。 一、查看本机IP地址 要查看本机IP地址,首先需要打开cmd窗口…

    编程 2025-04-29
  • 如何输入三个整数,并输出最大值Python

    对于初学者来说,输入三个整数并输出它们的最大值可能是一个比较基础的问题。然而,它却包含了Python中许多基本知识点的应用,因此学习它可以让我们更好地理解Python编程语言。 一…

    编程 2025-04-29
  • 尚硅谷官网地址用法介绍

    尚硅谷是国内一家领先的技术培训机构,提供了众多IT职业的培训,包括Java、Python、大数据、前端、人工智能等方向。其官网地址为http://www.atguigu.com/。…

    编程 2025-04-29
  • Python随机生成100内的10个整数

    本文将从以下几个方面详细阐述Python随机生成100内的10个整数: 一、random库介绍 在Python中,生成随机数可以使用random库。random库包括两种类型的函数…

    编程 2025-04-29
  • 全能编程开发工程师必备技能——如何优化大整数的计算

    本文将会为你分享如何解决大整数计算问题,以9999999967为例,我们将从多个方面对其做详细阐述,并给出完整的代码示例。 一、大整数的表示方法 在计算机中,我们通常采用二进制数来…

    编程 2025-04-29
  • 整数的因子包含自身吗

    本篇文章将从数学概念的角度、常用算法的应用、程序实现的方法等多个方面,对整数的因子包含自身的问题进行详细阐述。 一、质因数分解法 将整数进行质因数分解,若分解结果中所有质因子的指数…

    编程 2025-04-29
  • Python中的整数类型int类总览

    本文将从多个方面,对Python中的整数类型int类进行全面介绍和阐述。 一、数据类型及基本操作 在Python中,整数类型的数据类型为int。在Python3.x中,整数类型的范…

    编程 2025-04-28
  • Python计算ab之间整数的和

    本篇文章将阐述如何用Python计算ab之间整数的和以及使用for循环求解,希望本文能对正在学习Python的人们有所帮助。 一、计算ab之间整数的和 首先我们需要明确什么是ab之…

    编程 2025-04-28
  • Python元组元素分成单个整数

    本文将介绍如何将Python元组中的元素分成单个整数,并提供多种实现方式。 一、使用for循环遍历元组实现 可以通过for循环遍历元组的每一个元素,再将其转换成整数,并存储在新的列…

    编程 2025-04-28
  • Idea2022变更Git地址

    本文将从以下几个方面对Idea2022变更Git地址进行详细阐述: 一、GitHub上修改Git仓库地址 1、登录GitHub,找到需要修改的Git仓库 2、在代码页面点击右上角的…

    编程 2025-04-28

发表回复

登录后才能评论