jsp或java.根据来访IP判断是不是为中国IP.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp或java.根据来访IP判断是不是为中国IP.相关的知识,希望对你有一定的参考价值。
java中判断国内IP还是国外IP是需要通过大量的IP库来判断的,一般查询ip的网站上一下就查询出来到底是属于哪个国家的而且能细化到那个地区这是需要先做一个IP库然后通过查询才能查到的,不能单纯的从IP段来实现跳转页面的功能。另外介绍一个简单的办法:通过浏览器所用的字符集来判断:
<%
if Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")="zh-cn" THEN
Response.Redirect("index.asp")
else
Response.Redirect("en/index.asp")
end if
%> 参考技术A <script type="text/javascript" language="javascript">
var Browser_Agent = navigator.userAgent;
//浏览器为ie的情况
if(Browser_Agent.indexOf("MSIE")!=-1)
var a=navigator.browserLanguage;
if(a !="zh-cn")
location.href="英文网站";
document.write("国外IP");
else
document.write("国内IP");
//浏览器非ie的情况
else
var b=navigator.language;
if(b!="zh-CN")
location.href="英文网站";
document.write("国外IP");
else
document.write("国内IP");
</script>
这段js就可以判断! 参考技术B 获取来访IP不难,主要是你要有中国IP的范围(包含的IP网段信息),然后判断来访IP是否在这个范围内。你可以在网上搜一下电信,移动,联通的IP范围组合起来就是。本回答被提问者采纳 参考技术C 第一步网上说兔子~IP代理这个软件可以修改IP地址
第二步网上搜索兔#子IP代理下载
第三步打开软件连接其他城市IP即可
注册就能免费使用。
解决网络卡顿 参考技术D 先找一个中国IP的数据库,然后根据IP判断
用java语言 截取字符串中的Ip地址,并判断是不是合法,请问怎么做? 例“ip addess 192.160.2.3” 判断合法
2步做,先用正则判断格式,比如"ip address (\\d1,3\\.)3\\d1,3" (Java正则)得到ip数值后,再用if 判断各位数字是否在0-255之间
if(d>=0 && d<=255) print 合法;
else print 不合法;追问
字符串是任意字符串,而且我期望能得到代码,你这说的基本等于没说
追答因为在多次回答过一样的题也给出过代码,所以没直接重写
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test
static public void main(String args[])
String t="百度知道 > 电脑/网络 > 程序设计 > JAVA相关\n用java语言 截取字符串中的Ip地址,并判断是否合法,请问怎么做?ip address 192.160.2.256 例“ip address 192.160.2.3” 判断合法检举 | 2012-5-26 15:23 提问者: guxinjushi | 悬赏分:20 | 浏览次数:47次\n回答 共3条\n2012-5-28 14:58 ip address 192.160.2.4imkow | 十三级ip address 192.160.2.5";
Matcher m=Pattern.compile("ip address ((\\d1,3)\\.(\\d1,3)\\.(\\d1,3)\\.(\\d1,3))").matcher(t);
while(m.find())
System.out.print("找到:"+m.group(1));
boolean valid=true;
for(int i=2;i=255)
valid=false; break;
System.out.println(" =>"+(valid?"合法":"不合"));
==
找到:192.160.2.256 =>不合
找到:192.160.2.3 =>合法
找到:192.160.2.4 =>合法
找到:192.160.2.5 =>合法
====
你的例子address 错拼写成'addess',例子按正确address严格搜索的。
public class T
public static void main(String as[])
String id = JOptionPane.showInputDialog(null, "Please input IP: ");
int add = id.length();
String test = new String();
boolean b1 = false;
boolean b2 = false;
boolean b3 = false;
boolean b4 = false;
int found = 1;
if (id.charAt(0) == '.' || id.charAt(add - 1) == '.' || add > 15
|| id.split(".").length != 4)
JOptionPane.showMessageDialog(null, "IPAddress is error ");
else
for (int i = 0; i < add; i++)
if (String.valueOf(id.charAt(i)).equals("."))
// JOptionPane.showMessageDialog(null,String.valueOf(i));
int testadd = Integer.parseInt(test);
if (found == 1)
if (testadd > 0 && testadd < 255)
b1 = true;
if (found == 2)
if (testadd >= 0 && testadd < 255)
b2 = true;
if (found == 3)
if (testadd >= 0 && testadd < 255)
b3 = true;
test = new String();
found++;
else
test = test + String.valueOf(id.charAt(i));
if (i == (add - 1))
int testadd = Integer.parseInt(test);
if (testadd >= 0 && testadd < 255)
b4 = true;
if (b1 && b2 && b3 && b4)
JOptionPane.showMessageDialog(null, "IPAddress is exactly! ");
else
JOptionPane.showMessageDialog(null, "IPAddress is error ");
参考技术B 大体如下
-----------------------------------------------------------
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class demo
public static void main(String[] args)
String pattern = "(\\d1,3\\.)3\\d1,3";
String str = "ip addess 192.160.2.3";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
String result = null;
while (m.find())
result = m.group();
if (!"".equals(result))
break;
System.out.println(result);
boolean isOK = true;
String[] array = result.split("\\.");
for (int i = 0; i < array.length; i++)
int ip = Integer.parseInt(array[i]);
if (!(0 <= ip && ip <= 255))
isOK = false;
break;
if (isOK)
System.out.println("OK");
else
System.out.println("NG");
参考技术C 楼上正解
以上是关于jsp或java.根据来访IP判断是不是为中国IP.的主要内容,如果未能解决你的问题,请参考以下文章