當前位置:首頁 » 編程語言 » c語言判斷ip是否合法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言判斷ip是否合法

發布時間: 2022-06-11 05:33:42

1. c語言題目:輸入一個IP地址,判斷是否為正確形式

if((a[i]<'0'||a[i]>'9')&&a[i]!='.')//正確形式的時候

這一句,在ASCII表中0是在9前面的,所以應該是a[i]>='0'&&a[i]<='9',中間是邏輯與,這樣可以保證只有數字才有效

還有,你的程序邏輯也有點問題,for(i=1;a[i]!='\n';i++),這是從a[1]開始判斷,但是,應該是從a[0]開始判斷。

再有,這個for循環裡面,一開始判斷的是輸入的段數,你是根據點號判斷的,你自己數一下,應該是3個點,但是你卻是判斷的 j!=4;肯定報錯的

還有,判斷大於3個數字的那裡也有問題,你從始至終都只給b[]賦值過1,而且b[]並未初始化,數組元素值不確定,怎麼能b[1]-b[0]>4呢?

2. 如何用C語言判斷ip地址是否合法

ip地址 必須是
a.b.c.d的形式
所以 最簡單的方法 就是把ip地址存成字元串str
然後
int a,b,c,d;
a=b=c=d=-1;
sscanf(str,"%d.%d.%d.%d", &a,&b,&c,&d);
#define chk(x) (x<0 || x>255)
if(chk(a) || chk(b)||chk(c)||chk(d)) printf("failed");
else
{
printf("ok");

}

3. c語言IP判斷

直接寫個答案吧,希望對你有幫助。
#include <stdio.h>
#define MAX 30

int justfy(char *str)
{
char *p = str;
int subint[4];
int i, flag = 1;

while (*p)
{
if (!( *p >= '0' && *p <= '9' || *p == '.'))
flag = 0;
p++;
}
if(flag)
{
sscanf (str, "%d.%d.%d.%d",
&subint[0], &subint[1], &subint[2], &subint[3]);
for (i=0; i<4; i++)
if (subint[i] > 255)
flag = 0;
}

return flag;
}
int main ()
{
char str[30];
int flag[MAX];
int i = 0, j;

while (gets (str) != NULL && i < MAX)
{
flag[i] = justfy (str);
i++;
}
for (j=0; j<i; j++)
printf (flag[j]? "Y\n": "N\n");

return 0;
}

4. 輸入一個IP地址,如何檢測該IP地址的合法性呢用C語言實現!

你輸入的Ip地址和資料庫的IP地址對比一下,如果資料庫裡面有的話,就合法,否則不合法。

5. 菜鳥求助 C語言編程判斷IP MAC地址是否合法

#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;
}

6. 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;
}

7. c語言ip判斷

#include<stdio.h>
structIP
{
inta;
charq1;
intb;
charq2;
intc;
charq3;
intd;
}s;
voidyesno()
{
scanf("%d%c%d%c%d%c%d",&s.a,&s.q1,&s.b,&s.q2,&s.c,&s.q3,&s.d);
if(s.a<256&&s.a>0&&s.b<256&&s.b>0&&s.c<256&&s.c>0&&s.d<256&&s.d>0)
{
if(s.q1=='.'&&s.q1=='.'&&s.q1=='.')printf("YES ");
elseprintf("NO ");
}
elseprintf("NO ");
}

main()
{
inti;
for(i=0;i<99;i++)
{yesno();}
}

8. c語言實現判斷ip地址是否合法

#include<stdio.h>

intcheckIP(constchar*p)
{
intn[4];
charc[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)
{
inti;
for(i=0;i<3;++i)
if(c[i]!='.')
return0;
for(i=0;i<4;++i)
if(n[i]>255||n[i]<0)
return0;
return1;
}else
return0;
}

intmain()
{
constchar*x[]=
{
"192.168.1.1",
"10.0.0.1.",
"127.256.0.1",
"iugerjiogjioe",
"172.16,0.1",
0
};
constchar*m[]=
{
"不是合法的IP地址",
"是合法的IP地址"
};
inti=0;

while(x[i]!=0){
printf("%s%s ",x[i],m[checkIP(x[i])]);
++i;
}
return0;
}

9. c語言,求代碼 判斷ip是否正確,如圖

要實現這樣的功能。重點是格式輸入讀的數據的時候當中要有一個句點。得到的4個整數每一個。都滿足這個條件的就是合法的IP地址,否則就不是。