/** 校驗Ip格式 這是模仿js校驗ip格式,使用java做的判斷
* @param str
* @return
*/
publicboolean checkIp(String str)
{
String[] ipValue = str.split("\\.");
if (ipValue.length != 4)
{
returnfalse;
}
for (int i = 0; i < ipValue.length; i++)
{
String temp = ipValue[i];
try
{
// java判斷字串是否整數可以用此類型轉換異常捕獲方法,也可以用正則 var regu = /^\d+$/;
Integer q = Integer.valueOf(ipValue[i]);
if (q > 255)
{
returnfalse;
}
}
catch (Exception e)
{
returnfalse;
}
}
returntrue;
}
/** 校驗Ip地址是否合法
* @param addr
* @return
*/
publicstaticboolean isIpValid(String addr)
{
String[] ipStr = new String[4];
int[] ipb = newint[4];
StringTokenizer tokenizer = new StringTokenizer(addr, ".");
int len = tokenizer.countTokens();
if (len != 4)
{
returnfalse;
}
try
{
int i = 0;
while (tokenizer.hasMoreTokens())
{
ipStr[i] = tokenizer.nextToken();
ipb[i] = (new Integer(ipStr[i])).intValue();
if (ipb[i] < 0 || ipb[i] > 255)
{
returnfalse;
}
i++;
}
if (ipb[0] > 0)
{
returntrue;
}
}
catch (Exception e)
{
}
returnfalse;
}
/** 將byte[4] 數組轉換成int 型
* @param b
* @param len
* @return
*/
publicstaticint byteToInt(byte[] b, int len)
{
finalint LOWBYTE = 0x000000ff;
int i;
if (len < 1 || len > 4)
{
len = 4;
}
int[] temp = newint[len];
for (i = 0; i < len; i++)
{
temp[i] = (int) b[i];
temp[i] &= LOWBYTE;
temp[i] <<= ((len - 1 - i) * 8);
}
for (i = 1; i < len; i++)
{
temp[0] |= temp[i];
}
return temp[0];
}
/** 將ip地址從String轉換成Int型
* @param addr
* @return
*/
publicstaticint covtAddrToInt(String addr)
{
try
{
InetAddress ip = InetAddress.getByName(addr);
byte[] ipb = newbyte[4];
ipb = ip.getAddress();
int tIp = byteToInt(ipb, 4);
return tIp;
}
catch (java.net.UnknownHostException e)
{
return 0;
}
}
/** 將ip地址從int型轉換成String
* @param ip
* @return
*/
publicstatic String covtAddrToStr(int ip)
{
if (ip == 0)
{
returnnew String("0.0.0.0");
}
long newIp;
if (ip < 0)
{
newIp = ((long) 256) * ((long) 256) * ((long) 256) * ((long) 256);
newIp = newIp + ip;
}
else
{
newIp = (long) ip;
}
long yushu = newIp % 256;
newIp = newIp / 256;
String tmpIp = Long.toString(yushu);
for (int i = 0; i < 3; i++)
{
yushu = newIp % 256;
newIp = newIp / 256;
tmpIp = Long.toString(yushu) + "." + tmpIp;
}
return tmpIp;
}
/**
* 優化輸入的Ip值,如將"01.02.03.04"轉化爲"1.2.3.4";
* 注:此方法僅提供優化,不提供校驗,請使用合法的Ip格式字串調用
*
* @param oldIpStr 將被優化的ip值
* 必須確保傳過來的Ip值已經符合Ip格式規範
* @return 返回轉化後的Ip值
*/
public String suitableIp(String oldIpStr)
{
String newIp = "";
// 分離爲數組
String[] tmpStr = oldIpStr.split("\\.");
for (int i = 0; i < tmpStr.length; i++)
{
newIp += Integer.valueOf(tmpStr[i]);
if (i < tmpStr.length - 1)
{
newIp += ".";
}
}
return newIp;
}
* @param str
* @return
*/
publicboolean checkIp(String str)
{
String[] ipValue = str.split("\\.");
if (ipValue.length != 4)
{
returnfalse;
}
for (int i = 0; i < ipValue.length; i++)
{
String temp = ipValue[i];
try
{
// java判斷字串是否整數可以用此類型轉換異常捕獲方法,也可以用正則 var regu = /^\d+$/;
Integer q = Integer.valueOf(ipValue[i]);
if (q > 255)
{
returnfalse;
}
}
catch (Exception e)
{
returnfalse;
}
}
returntrue;
}
/** 校驗Ip地址是否合法
* @param addr
* @return
*/
publicstaticboolean isIpValid(String addr)
{
String[] ipStr = new String[4];
int[] ipb = newint[4];
StringTokenizer tokenizer = new StringTokenizer(addr, ".");
int len = tokenizer.countTokens();
if (len != 4)
{
returnfalse;
}
try
{
int i = 0;
while (tokenizer.hasMoreTokens())
{
ipStr[i] = tokenizer.nextToken();
ipb[i] = (new Integer(ipStr[i])).intValue();
if (ipb[i] < 0 || ipb[i] > 255)
{
returnfalse;
}
i++;
}
if (ipb[0] > 0)
{
returntrue;
}
}
catch (Exception e)
{
}
returnfalse;
}
/** 將byte[4] 數組轉換成int 型
* @param b
* @param len
* @return
*/
publicstaticint byteToInt(byte[] b, int len)
{
finalint LOWBYTE = 0x000000ff;
int i;
if (len < 1 || len > 4)
{
len = 4;
}
int[] temp = newint[len];
for (i = 0; i < len; i++)
{
temp[i] = (int) b[i];
temp[i] &= LOWBYTE;
temp[i] <<= ((len - 1 - i) * 8);
}
for (i = 1; i < len; i++)
{
temp[0] |= temp[i];
}
return temp[0];
}
/** 將ip地址從String轉換成Int型
* @param addr
* @return
*/
publicstaticint covtAddrToInt(String addr)
{
try
{
InetAddress ip = InetAddress.getByName(addr);
byte[] ipb = newbyte[4];
ipb = ip.getAddress();
int tIp = byteToInt(ipb, 4);
return tIp;
}
catch (java.net.UnknownHostException e)
{
return 0;
}
}
/** 將ip地址從int型轉換成String
* @param ip
* @return
*/
publicstatic String covtAddrToStr(int ip)
{
if (ip == 0)
{
returnnew String("0.0.0.0");
}
long newIp;
if (ip < 0)
{
newIp = ((long) 256) * ((long) 256) * ((long) 256) * ((long) 256);
newIp = newIp + ip;
}
else
{
newIp = (long) ip;
}
long yushu = newIp % 256;
newIp = newIp / 256;
String tmpIp = Long.toString(yushu);
for (int i = 0; i < 3; i++)
{
yushu = newIp % 256;
newIp = newIp / 256;
tmpIp = Long.toString(yushu) + "." + tmpIp;
}
return tmpIp;
}
/**
* 優化輸入的Ip值,如將"01.02.03.04"轉化爲"1.2.3.4";
* 注:此方法僅提供優化,不提供校驗,請使用合法的Ip格式字串調用
*
* @param oldIpStr 將被優化的ip值
* 必須確保傳過來的Ip值已經符合Ip格式規範
* @return 返回轉化後的Ip值
*/
public String suitableIp(String oldIpStr)
{
String newIp = "";
// 分離爲數組
String[] tmpStr = oldIpStr.split("\\.");
for (int i = 0; i < tmpStr.length; i++)
{
newIp += Integer.valueOf(tmpStr[i]);
if (i < tmpStr.length - 1)
{
newIp += ".";
}
}
return newIp;
}