本文目录一览:
判断字符串是否是合法的ipv4地址
public static boolean Isipv4(String ipv4){
if(ipv4==null || ipv4.length()==0){
return false;//字符串为空或者空串
}
String[] parts=ipv4.split(“\\.”);//因为java doc里已经说明, split的参数是reg, 即正则表达式, 如果用”|”分割, 则需使用”\\|”
if(parts.length!=4){
return false;//分割开的数组根本就不是4个数字
}
for(int i=0;iparts.length;i++){
try{
int n=Integer.parseInt(parts[i]);
if(n0 || n255){
return false;//数字不在正确范围内
}
}catch (NumberFormatException e) {
return false;//转换数字不正确
}
}
return true;
}
C语言 问题 C: IP地址的合法性检查?
#include stdio.h
int isVaildIp(char *ip) {
int dots = 0; /*字符.的个数*/
int setions = 0; /*ip每一部分总和(0-255)*/
if (NULL == ip || *ip == ‘.’) { /*排除输入参数为NULL, 或者一个字符为’.’的字符串*/
return 0;
}
char *p = ip;
while (*p) {
if (*p == ‘.’) {
dots ++;
if (setions = 0 setions = 255) { /*检查ip是否合法*/
setions = 0;
p++;
continue;
}
return 0;
}
else if (*p = ‘0’ *p = ‘9’) {
if (p != ip *(p – 1) == ‘0’ *(p – 2) == ‘.’)
return 0;/*判断是不是数字*/
setions = setions * 10 + (*p – ‘0’); /*求每一段总和*/
}
else
return 0;
p++;
}
if (setions = 0 setions = 255) {
if (dots == 3) {
return 1;
}
}
return 0;
}
int main(void) {
int n;
scanf(“%d”, n);
getchar();
while (n–) {
char s[100];
scanf(“%s”, s);
if (isVaildIp(s))
puts(“YES”);
else
puts(“NO”);
}
return 0;
}
如何用C语言判断ip地址是否合法
可以试一下
#include stdio.h
int checkIP(const char* p)
{
int n[4];
char c[4];
if (sscanf(p, “%d%c%d%c%d%c%d%c”,
n[0], c[0], n[1], c[1],
n[2], c[2], n[3], c[3])
== 7)
{
int i;
for(i = 0; i 3; ++i)
if (c[i] != ‘.’)
return 0;
for(i = 0; i 4; ++i)
if (n[i] 255 || n[i] 0)
return 0;
return 1;
} else
return 0;
}
int main()
{
const char* x[] =
{
“192.168.1.1”,
“10.0.0.1.”,
“127.256.0.1”,
“iugerjiogjioe”,
“172.16,0.1”,
0
};
const char* m[] =
{
“不是合法的IP地址”,
“是合法的IP地址”
};
int i = 0;
while(x[i] != 0) {
printf(“%s %s\n”, x[i], m[checkIP(x[i])]);
++i;
}
return 0;
}
原创文章,作者:IYHZ,如若转载,请注明出处:https://www.506064.com/n/141206.html