本文目錄一覽:
判斷字符串是否是合法的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/zh-hant/n/141206.html