⑴ 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 {
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()) {
NetworkInterface intf = (NetworkInterface) en.nextElement();
Enumeration<InetAddress> 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归属地
本文旨在手把手教你使用Java实现获取IP归属地的功能,以解决各大平台如微信公众号、知乎和抖音等所推出的相关功能。实现这一目标的步骤涉及获取IP地址、解决Nginx反向代理问题以及通过IP获取归属地等关键环节。
首先,我们需要基于Spring Boot搭建项目,添加控制器(Controller)中使用HttpServletRequest获取IP地址。然而,在本地环境下,获取的IP可能是0:0:0:0:0:0:0:1或局域网IP,这些都不具备公网访问的能力,因此需要将项目部署至外网服务器,以确保能成功获取到公网IP。
面对Nginx反向代理的挑战,我们需要在Nginx的配置文件中添加特定的配置,确保客户端请求的IP能够被正确传入Nginx服务。通过这一措施,最终获取到的是客户端的真实IP,而非Nginx服务器的IP。
获取到IP后,接下来的步骤是获取归属地。有多种方法可以实现这一目标,本文将介绍两种主要途径:一是通过IP归属地API获取,需发起HTTP请求,使用Spring Boot的RestTemplate来完成;二是通过本地地址库获取,推荐使用Ip2region库,该库以微秒级的速度进行查询,无需担心API服务中断的问题。
为了实现本地地址库的使用,我们首先需要从GitHub官网下载ip2region.xdb地址库,并将其放置在项目资源目录下。接下来,引入相应的Maven依赖,编写代码以完成IP归属地的查询。最终,通过获取region信息,即可获取到IP的归属地,如“中国|0|广东省|广州市|电信”等。
为验证上述程序的有效性,我们以小程序的形式展示IP归属地获取功能,并附上页面效果截图。只需通过扫描二维码,即可查询到自身的归属地信息,直观且便捷。
⑶ java中如何获取使用者的IP地址及禁止此人
如果你是javaWeb,可以在过滤器中使用request.getRemoteAddr() ,发现此IP直接跳转到无用的页面或者不存在的页面
如果你是socket,也可以通过socket.getIAddress()获取IP,发现此IO直接把他的连线关闭就可以了
static$realip;
if(isset($_SERVER)){
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip=$_SERVER["HTTP_X_FORWARDED_FOR"];
}elseif(isset($_SERVER["HTTP_CLIENT_IP"])){
$realip=$_SERVER["HTTP_CLIENT_IP"];
}else{
$realip=$_SERVER["REMOTE_ADDR"];
}
}else{
if(getenv("HTTP_X_FORWARDED_FOR")){
$realip=getenv("HTTP_X_FORWARDED_FOR");
}elseif(getenv("HTTP_CLIENT_IP")){
$realip=getenv("HTTP_CLIENT_IP");
}else{
$realip=getenv("REMOTE_ADDR");
}
}
return$realip;
}
输入本地IP地址,进入到安装页面,点选"...
1
检视环境没有问题后,继续下一步!
2
选择安装方式后,继续下一步!
3
填写资料库和网站后台账号密码。如果是...
4
安装成功后,我们在浏览器输入:"127.0.0...
5
点选更新站点快取
6
选择全部后,点选提交
7
现在你就可以开始你的电商之旅了!
请问你要用的是什么程式码来获取呀??
public static string GetIP()
{
string ip;
if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
{
ip = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
return ip;
}
使用者名称就是您的手机型号。ip地址可以通过浏览器进入网络搜索【ip】,即可以显示您的手机的ip地址。
望采纳,谢谢!
这个应该和语言没有关系吧,你释出个JavaWeb专案,你是怎么获取客户的Ip地址的?难道浏览器都是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");
严重同意LS滴要彻底禁止修改IP只能锁定登录档,不过负面影响就是可能有时候自己忘了恢复登录档许可权就安装软体可能会出现安装失败
组策略里可以设定不能修改网路配置的选项的,只要不是很懂电脑的人一般都不会知道在哪里去修改这个选项的,你可以试一试看的
然后输入“ipconfig”,显示出来的“IP Address”就是你的本机IP地址。 如果是98刚点“开始”→执行→输入“winipcfg”就可以看到本地IP了。 第二步把这个获取的ip有意识地变为自己的固定ip,比如说你刚才ip为61.1.2.245,网路自动配制ip的模式为从255到0,第一个上网人为61.1.2.255,第二个为61.1.2.254,第三个就是61.1.2.153,经此类推,越小号(最后一位)用的机会也越少,这也是你配制固定IP的好机会,比如你选用了29,那你的ip就是61.1.2.29。以上61.1.2.*是个例子,不是你要配制的,你要看清楚。 第三步是获取闸道器,还拿上面例子说明,你的闸道器为61.1.2.1,即把最后一位变成1就可以了。 第四步你要登陆你所在电信部门你网站来获取dns,找到后你记下网址,关掉你的猫,再次登陆你刚才记下的网站,这时机器会在下面的登陆资讯框中显示你要登陆网站的ip地址,比如为61.1.2.3,前两位对我们的用途太大了,这样你获取的dns就是61.1.1.4和61.1.2.5,这是固定格式,你要记清楚,1.42.5是不变的。如果你无法找到当面地电信部门的网站,那么你就找当地的 *** 网,不会吧,又找不见,忘了说了,是在找地市级的行政网,这下找到了,关掉猫,记下来大功告成。 第五步在本机上设定,你可以在网路临居上上击右链,然后找到你要配制的那个网络卡,有许多机子是双网络卡,在相应栏中填上你刚才获取的资讯,在启用DNS时要填主机名,你可填上我的网名linzhongzi,也可以填上你的网名,想填什么就填什么,域这一项就不要填了。
⑷ java如何查询本机ip地址和mac地址
Java中可以使用程序来获取本地ip地址和mac地址,使用InetAddress这个工具类,示例如下:
importjava.net.*;
publicclassNetInfo{
publicstaticvoidmain(String[]args){
newNetInfo().say();
}
publicvoidsay(){
try{
InetAddressi=InetAddress.getLocalHost();
System.out.println(i);//计算机名称和IP
System.out.println(i.getHostName());//名称
System.out.println(i.getHostAddress());//只获得IP
}
catch(Exceptione){e.printStackTrace();}
}
}
也可以通过命令行窗口来查看本地ip和mac地址,输入命令:ipconfig。
⑸ java如何获取当前登录ip
第一种:获取本机的IP
Enumeration<NetworkInterface> netInterfaces = null;
try {
netInterfaces = NetworkInterface.getNetworkInterfaces();
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = netInterfaces.nextElement();
System.out.println("DisplayName:" + ni.getDisplayName());
System.out.println("Name:" + ni.getName());
Enumeration<InetAddress> ips = ni.getInetAddresses();
while (ips.hasMoreElements()) {
System.out.println("IP:" + ips.nextElement().getHostAddress());
ipTemp= ni.getInetAddresses().nextElement().getHostAddress();
if(ipTemp!="127.0.0.1" && !"127.0.0.1".equals(ipTemp))
{
ip=ipTemp;
}
}
}
}catch(Exception ee)
{
ee.printStackTrace();
}
第二种:也是本机的:
InetAddress addr = InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//获得本机IP
⑹ java如何获取当前登录ip
第一种:获取本机的IP
Enumeration<NetworkInterface>
netInterfaces
=
null;
try
{
netInterfaces
=
NetworkInterface.getNetworkInterfaces();
while
(netInterfaces.hasMoreElements())
{
NetworkInterface
ni
=
netInterfaces.nextElement();
System.out.println("DisplayName:"
+
ni.getDisplayName());
System.out.println("Name:"
+
ni.getName());
Enumeration<InetAddress>
ips
=
ni.getInetAddresses();
while
(ips.hasMoreElements())
{
System.out.println("IP:"
+
ips.nextElement().getHostAddress());
ipTemp=
ni.getInetAddresses().nextElement().getHostAddress();
if(ipTemp!="127.0.0.1"
&&
!"127.0.0.1".equals(ipTemp))
{
ip=ipTemp;
}
}
}
}catch(Exception
ee)
{
ee.printStackTrace();
}
第二种:也是本机的:
InetAddress
addr
=
InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//获得本机IP
⑺ 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地址
* 思想是访问网站http://checkip.dyndns.org/,得到返回的文本后解析出本机在外网的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);
}
/**
* 从外网提供者处获得包含本机外网地址的字符串
* 从http://checkip.dyndns.org返回的字符串如下
* <html><head><title>Current IP Check</title></head><body>Current 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("http://checkip.dyndns.org/");
System.out.println(fetcher.getMyExternalIpAddress());
}
}