① java編寫正則表達式,判斷給定的是否是一個合法的IP地址怎麼寫
正則表達式匹配ip地址,實際上就是分別判斷每個點直接的數字是否符合規范。
package com;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestRegex {
public static boolean isboolIP(String ipAddress){
String ip="(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})";
Pattern pattern = Pattern.compile(ip);
Matcher matcher = pattern.matcher(ipAddress);
return matcher.matches();
}
/** * @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String ipAddress1 = "10.";
String ipAddress2 = "0.0.0.0";
String ipAddress3 = "255.255.255.255";
String ipAddress4 = "192.168.2.1";
String ipAddress5 = "26445687";
String ipAddress6 = "nihao";
String ipAddress7 = "你好!!";
if(isboolIP(ipAddress1)){
System.out.println("IP正確");
}else{
System.out.println("IP錯誤");
} if(isboolIP(ipAddress2)){
System.out.println("IP正確"); }else{
System.out.println("IP錯誤");
} if(isboolIP(ipAddress3)){
System.out.println("IP正確"); }else{
System.out.println("IP錯誤");
}
if(isboolIP(ipAddress4)){
System.out.println("IP正確"); }else{
System.out.println("IP錯誤");
② JAVA判斷正確ip號
沒必要判斷的那麼細,用正則表達蠢埋衫液空式
publicclass${
publicstaticvoidmain(String[]args){
Stringstr1="a.b.c.d";
Stringstr2="1.1.1.1";
Stringstr3="1.1.1.256";
Stringstr4="192.168.1.1";
Stringregex="(2[5][0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})";
帶腔System.out.println(str1.matches(regex));
System.out.println(str2.matches(regex));
System.out.println(str3.matches(regex));
System.out.println(str4.matches(regex));
}
}
false
true
false
true
③ 用java判斷一個字元串是否是ip 如果是是哪類ip,怎麼做
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class IpTest {
public static void main(String[] args) {
new IpTest().go();
}
/**
* 程序主要邏輯
*/
public void go() {
String IP = null;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
IP = br.readLine();
} catch (IOException ex) {
ex.printStackTrace();
}
//String IP="192.168.0.100/255.255.255.0";
IP = IP.replace(" ", "");
String[] temp = IP.split("/");
String[] sIP = temp[0].split("\\.");
/**
* 判斷輸入格式是否正確
*/
if (temp.length < 2) {
System.out.println("對不起,輸入格式錯誤");
System.exit(0);
}
int Mask = Integer.parseInt(temp[1]);
int[] ip = new int[4];
for (int i = 0; i < sIP.length; i++) {
ip[i] = Integer.parseInt(sIP[i]);
}
/**
* IP地址各段不能大於255
*/
for (int i = 0; i < 4; i++) {
if (ip[i] > 255) {
System.out.println("對不起,IP輸入錯誤");
System.exit(0);
}
}
/**
* 判斷IP地址所屬分世指睜類
*/
int ipclass = 0;
if (ip[0] < 127) {
System.out.println("A類地址逗檔");
ipclass = 1;
} else if (ip[0] < 192) {
System.out.println("B類地址");
ipclass = 2;
} else if (ip[0] < 224) {
System.out.println("C類地址");
ipclass = 3;
}
/**
* 判斷子網掩碼是否輸入正確
*/搜歲
if (Mask < 8 * ipclass) {
System.out.println("對不起,子網掩碼輸入錯誤");
System.exit(0);
}
int b = 0;
int a = Mask % 8;
b = Mask / 8;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < a; i++)
sb.append('1');
for (int i = 0; i < 8 - a; i++)
sb.append('0');
int end = Integer.parseInt(sb.toString(), 2);
ip[b] = ip[b] & end;
for (int i = b + 1; i < 4; i++)
ip[i] = 0;
for (int i = 0; i < 4; i++) {
System.out.print(ip[i]);
if (i != 3)
System.out.print(".");
}
}
}
④ java 判斷IP地址的有效性
System.out.println("請輸入一個ip地址");
Scannerinput=newScanner(System.in);
Stringid=input.next();
String[]idnumber=id.split("\.");
for(inta=0;a<idnumber.length;a++)
{
if(Integer.parseInt(idnumber[a])>=255)
{
System.out.println("IP地址無效");
return;
}
}
System.out.println("IP地址有效");
⑤ java如何確認IP是否屬於某地址段
java確認IP屬於某地址段主要是判斷IP前兩組是否相同,使用如下方法:
(1)如果同一個網弊賣段的概念是:
192.168.0.1和192.168.0.254,那麼用.拆分判斷第一二三部分完全一致應該就可以了,當然填寫的時候1到255的限制應該是起碼的要求了;
(2)如果192.168.0.1 和 192.168.0.254 ,再配合伍派上子網掩碼定義為同一網腔卜賀段的話,那就用兩個ip轉換為二進制之後分別和二進制子網掩碼做邏輯與,結果一致是不是就可以定義為同一網段;
網路中對網段的定義我也不太了解,不知道你是要遵循網路中的定義還是按你自己的需求來;
⑥ 用JAVA怎的判斷一個地址是IPv4還是IPv6
IP地址現在又IPv4和IPv6,目毀消廳前比較常用的IPv4。 IPv4地址分為5類。A、B、C、D、E A類地址的標志是第一個位元組數值為1---126 如纖隱:10.1.1.1和 100.1.1.1 B類地址的標志是第一個位元組數值為128---191 如:172.16.1.1 188.1.1.1 C類地址的標志是第一個,在遠標橋晌java前這些我都已經知道了的!
⑦ java如何判斷用戶使用的是IP地址訪問還是域名訪問
java判斷用團碼戶使用的是IP地址訪問還是域名訪問,其實有一個方法的
例如使用使用http://www.test.com訪問時塌廳哪, request.getServerName() 會返回www.test.com 這就是域名訪問
http://59.129.33.33時,伏啟會返回59.129.33.33,這就是地址訪問了
主要看request.getServerName()這個方法的返回值就可以判斷了、
⑧ java判斷是否為合法的ip地址
/**
* 驗證ip是否合法
*
* @param text
* ip地址
* @return 驗證信息
*/
public String ipCheck(String text) {
if (text != null && !text.isEmpty()) {
// 定義正則表達式
String regex = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
+ "(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
// 判斷ip地址是否與正則表達式匹配
if (text.matches(regex)) {
// 返回判斷信息
return text + "\n是一個合法的IP地址!";
} else {
// 返回判斷信息
return text + "\n不是一個合法的IP地址!";
}
}
// 返回判斷信息
return "請輸入要驗證的IP地址!";
}
返回類型什麼的都可以自己修改啊
⑨ 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
內網IP是以下面幾個段凱鍵的IP.用戶可以自己設置.常用的內網IP地址:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
----------------------選自網路--------------------------------------------------
由於以上ip段、我們只需要做判斷ip是否族肢屬於以上3個網段就行了
publicbooleanisInner(Stringip)
{
Stringreg="(10|172|192)\.([0-1][0-9]{0,2}|[2][0-5]{0,2}|[3-9][0-9]{0,1})\.([0-1][0-9]{0,2}|[2][0-5]{0,2}|[3-9][0-9]{0,1})\.([0-1][0-9]{0,2}|[2][0-5]{0,2}|[3-9][0-9]{0,1})";//正則表達式=。=、懶得做文字處理了、
Patternp=Pattern.compile(reg);
兆孫世Matchermatcher=p.matcher(ip);
returnmatcher.find();
}