当前位置:首页 » 编程语言 » 菜鸟c语言判断ip地址
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

菜鸟c语言判断ip地址

发布时间: 2022-03-05 05:30:04

‘壹’ 求对一个字符串判断是否为ip地址的C程序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char ip[20];
printf("请输入ip\n"); //点分十进制
scanf("%s",ip);
const char* del=".";
char* token=strtok(ip,del);
int i=0,tem=0;
bool flag=1;
while(token!=0)
{
i++;
tem=atoi(token);
if(tem>255||tem<0)
{
printf("不是,ip地址的点分十进制大于等于0小于等于255\n");
flag=0;
break;
}
token=strtok(0,del);
if(i>=5)
{
printf("不是点分十进制的ip\n");
flag=0;
break;
}
}
if(i<4&&flag)
{
printf("不是点分十进制的ip\n");
flag=0;
}
if(flag) printf("是点分十进制的ip\n");
return 0;
}

‘贰’ 菜鸟c语言编程判断IP MAC地址是否合法

可以试一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

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

‘叁’ 菜鸟求助 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;
}

‘肆’ 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;
}

‘伍’ 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();}
}

‘陆’ 请问 , 用c语言怎样获取ip地址啊 谢谢了

看你要获得那里的ip地址
如果是本及机的话,就使用windows的API啊

#include "winsock.h"
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
char* ip;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 2, 0 );
if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
// ip is ready
WSACleanup( );
}

‘柒’ 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;
}

‘捌’ 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呢?

‘玖’ C语言如何实现IP地址查询系统

C语言如何实现IP地址查询系统
参考如下:

voidGetNameAndIp()
{
structhostent*host;
structin_addr*ptr;
DWORDdwScope=RESOURCE_CONTEXT;
NETRESOURCE*NetResource=NULL;
HANDLEhEnum;
WNetOpenEnum(dwScope,NULL,NULL,NULL,&hEnum);
WSADATAwsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);
if(hEnum)
{
DWORDCount=0xFFFFFFFF;
DWORDBufferSize=10240;
LPVOIDBuffer=newchar[10240];
WNetEnumResource(hEnum,&Count,Buffer,&BufferSize);
NetResource=(NETRESOURCE*)Buffer;
charszHostName[200];
for(unsignedinti=0;i<BufferSize/sizeof(NETRESOURCE);i++,NetResource++)
{
if(NetResource->dwUsage==RESOURCEUSAGE_CONTAINER&&NetResource->dwType==RESOURCETYPE_ANY)
{
if(NetResource->lpRemoteName)
{
CStringstrFullName=NetResource->lpRemoteName;
if(0==strFullName.Left(2).Compare(_T("\\")))
strFullName=strFullName.Right(strFullName.GetLength()-2);
gethostname(szHostName,strlen(szHostName));
USES_CONVERSION;
char*pchar=T2A(strFullName);
host=gethostbyname(pchar);
if(host==NULL)continue;
ptr=(structin_addr*)host->h_addr_list[0];
stringstr="";
for(intn=0;n<4;n++)
{
CStringaddr;
if(n>0)
{
str+=".";
}
intvalue=(unsignedint)((unsignedchar*)host->h_addr_list[0])[n];
charp[20];
sprintf(p,"%d",value);
str.append(p);
}
std::cout<<"IP:"<<str<<"Name:"<<host->h_name<<std::endl;
}
}
}
deleteBuffer;
WNetCloseEnum(hEnum);
}
WSACleanup();
}