如何判断IP地址是否合法
5个回答
展开全部
IP地址,用“.”分隔的4个十进制数,范围是0-255,超过范围就是无效的。
总的来说,ip地址分类由第一个八位组的值来确定,任何一个0到127 间的网络地址均是一个a类地址。
任何一个128到191间的网络地址是一个b类地址。任何一个192到223 间的网络地址是一个c类地址。任何一个第一个八位组在224到239 间的网络地址是一个组播地址即d类地址,e类保留。
扩展资料:
IP地址的分配
TCP/IP协议需要针对不同的网络进行不同的设置,且每个节点一般需要一个“IP地址”、一个“子网掩码”、一个“默认网关”。
不过,可以通过动态主机配置协议(DHCP),给客户端自动分配一个IP地址,避免了出错,也简化了TCP/IP协议的设置。
互联网上的IP地址统一由一个叫“ICANN”(Internet Corporation for Assigned Names and Numbers,互联网赋名和编号公司)的组织来管理。
IP地址现由因特网名字与号码指派公司ICANN(Internet Corporation for Assigned Names and Numbers)分配。
展开全部
public class Test_ip {
//程序入口
public static void main(String[] args) {
Solution s = new Solution(); // 业务逻辑放在Solution类里面
//String test_str = "12.34.56.67";
String test_str = "256.34.56.67"; // 待解决的字符串
boolean res = s.test_ip(test_str); //调用判断方法
System.out.println(res); //输出结果
}
}
class Solution{
/**
* 判断一个字符串是否是一个合法的ip地址:
* 1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
* 2 尝试按.符号进行拆分 拆分结果应该是4段
* 3 查看拆分到的每一个子字符串,应该都是纯数字
* 4 对拆分结果转成整数 判断 应该是0到255之间的整数
* 5 经过各种磨砺之后 挺过来了!!!返回true
*/
public boolean test_ip(String str){
// 1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
if(str.length()<7 || str.length() >15) return false; // 如果长度不符合条件 返回false
// 2 尝试按.符号进行拆分 拆分结果应该是4段
String[] arr = str.split("\\.");
if( arr.length != 4 ) return false; //如果拆分结果不是4个字串 返回false
// 3 查看拆分到的每一个子字符串,应该都是纯数字
for(int i = 0 ; i <4 ; i++ ){
for(int j = 0; j<arr[i].length();j++){
char temp = arr[i].charAt(j);
if(!( temp>'0' && temp< '9' ) ) return false; //如果某个字符不是数字就返回false
}
}
// 4 对拆分结果转成整数 判断 应该是0到255之间的整数
for(int i = 0 ; i<4;i++){
int temp = Integer.parseInt( arr[i] );
if( temp<0 || temp >255) return false; //如果某个数字不是0到255之间的数 就返回false
}
// 5 经过各种磨砺之后 挺过来了!!!返回true
return true;
}
}
//程序入口
public static void main(String[] args) {
Solution s = new Solution(); // 业务逻辑放在Solution类里面
//String test_str = "12.34.56.67";
String test_str = "256.34.56.67"; // 待解决的字符串
boolean res = s.test_ip(test_str); //调用判断方法
System.out.println(res); //输出结果
}
}
class Solution{
/**
* 判断一个字符串是否是一个合法的ip地址:
* 1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
* 2 尝试按.符号进行拆分 拆分结果应该是4段
* 3 查看拆分到的每一个子字符串,应该都是纯数字
* 4 对拆分结果转成整数 判断 应该是0到255之间的整数
* 5 经过各种磨砺之后 挺过来了!!!返回true
*/
public boolean test_ip(String str){
// 1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
if(str.length()<7 || str.length() >15) return false; // 如果长度不符合条件 返回false
// 2 尝试按.符号进行拆分 拆分结果应该是4段
String[] arr = str.split("\\.");
if( arr.length != 4 ) return false; //如果拆分结果不是4个字串 返回false
// 3 查看拆分到的每一个子字符串,应该都是纯数字
for(int i = 0 ; i <4 ; i++ ){
for(int j = 0; j<arr[i].length();j++){
char temp = arr[i].charAt(j);
if(!( temp>'0' && temp< '9' ) ) return false; //如果某个字符不是数字就返回false
}
}
// 4 对拆分结果转成整数 判断 应该是0到255之间的整数
for(int i = 0 ; i<4;i++){
int temp = Integer.parseInt( arr[i] );
if( temp<0 || temp >255) return false; //如果某个数字不是0到255之间的数 就返回false
}
// 5 经过各种磨砺之后 挺过来了!!!返回true
return true;
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、首先了解下IP地址是什么,IP地址分为A类,B类,C类,D类,E类。A类的IP地址范围为0.0.0.0-127.255.255.255,B类的IP地址范围为128.0.0.0-191.255.255.255,C类的IP地址范围为192.0.0.0-223.255.255.255。
2、然后判断标识长度,在A类IP地址里,其中网络的标识长度为8位,主机标识的长度为24位,子网掩码为255.0.0.0。B类适合用于中等规模的网络,其中网络的标识长度为16位,主机标识的长度为16位,子网掩码为255.255.0.0。C类适合小规模的局域网,其中网络的标识长度为24位,主机标识的长度为8位,子网掩码为255.255.255.0。
3、最后判断是否合法,在每个合法的IP地址中,有4个3位数用“.”隔开的数字,而且每个三位数都在0到255之间,并且包含255这个数字。相信大家在学习后,已经知晓如何判断IP地址是否合法了。
2、然后判断标识长度,在A类IP地址里,其中网络的标识长度为8位,主机标识的长度为24位,子网掩码为255.0.0.0。B类适合用于中等规模的网络,其中网络的标识长度为16位,主机标识的长度为16位,子网掩码为255.255.0.0。C类适合小规模的局域网,其中网络的标识长度为24位,主机标识的长度为8位,子网掩码为255.255.255.0。
3、最后判断是否合法,在每个合法的IP地址中,有4个3位数用“.”隔开的数字,而且每个三位数都在0到255之间,并且包含255这个数字。相信大家在学习后,已经知晓如何判断IP地址是否合法了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
刚刚知道一个非常好用的方法。首先ip地址为32位二进制,8位一组进行分割,所以ip地址一定要有四组;其次,ip地址任何一组不可高于255;最后,开头结尾不为0,结尾还不可为255。简单吧
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-13
展开全部
根据IP的规则来判断噻!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询