⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip地址的合法性判断.txt

📁 编写的关于一个ip地址合法性判断的程序
💻 TXT
字号:
#include<iostream> 
#include<ctype.h> 
#include<math.h> 
#include<string.h> 
using namespace std; 
void main(int argc, char *argv[]) 
{ 
if(argc!=2) 
{ 
cout<<endl<<"请按以下格式输入命令行:IpAddress ip_address"<<endl; 
return; 
} 
char *ipaddr; 
ipaddr=new char[strlen(argv[1])]; 
strcpy(ipaddr,argv[1]); 
cout<<endl<<"开始分析IP地址"; 
if(strlen(ipaddr)>15) 
{ 
cout<<endl<<"IP地址总长度不能超过15!"<<endl; 
return ; 
} 
int dotnum=0; 
for(int i=0;i<strlen(ipaddr);i++) 
{ 
if(isdigit(ipaddr[i])==0 && ipaddr[i]!='.') 
{ 
cout<<endl<<"IP地址中含有非法字符!"<<endl; 
return ; 
} 
if(ipaddr[i]=='.') 
dotnum++; 
} 
if(dotnum!=3) 
{ 
cout<<endl<<"IP地址中分隔符只能为3个!"<<endl; 
return; 
} 
for(i=0;i<strlen(ipaddr)-1;i++) 
{ 
if(ipaddr[i]=='.' && ipaddr[i+1]=='.') 
{ 
cout<<endl<<"IP地址中出现连续的分隔符!"<<endl; 
return; 
} 
} 
int len; 
len=strlen(ipaddr); 
if(ipaddr[len-1]=='.') 
{ 
cout<<endl<<"IP地址最后们不能为分隔符!"<<endl; 
return; 
} 
char temp[4][15]; 
for(i=0;i<4;i++) 
for(int j=0;j<15;j++) 
temp[i][j]='\0'; 
int ip[4]={0,0,0,0}; 
int j=0; 
i=0; 
for(int k=0;k<strlen(ipaddr);k++) 
{ 
if(ipaddr[k]!='.') 
{ 
temp[i][j]=ipaddr[k]; 
j++; 
} 
else 
{ 
i++; 
j=0; 
} 
} 
for(i=0;i<4;i++) 
{ 
len=strlen(temp[i]); 
if(len>3) 
{ 
cout<<endl<<"IP地址每位长度不能超过3!"<<endl; 
return; 
} 
switch(len) 
{ 
case 3: 
{ 
while(len!=0) 
{ 
ip[i]+=(temp[i][len-1]-48)*pow(10,3-len); 
len--; 
} 
break; 
} 
case 2: 
{ 
while(len!=0) 
{ 
ip[i]+=(temp[i][len-1]-48)*pow(10,2-len); 
len--; 
} 
} 
break; 
default: 
{ 
while(len!=0) 
{ 
ip[i]+=(temp[i][len-1]-48)*pow(10,1-len); 
len--; 
} 
} 

} 
} 
for(i=0;i<4;i++) 
{ 
if(ip[i]>255) 
{ 
cout<<endl<<"IP地址数字不能超过255!"<<endl; 
return; 
} 
} 
if(ip[0]<1) 
cout<<endl<<"IP地址首位不能为0!"<<endl; 
if(ip[0]>=1 && ip[0]<=127) 
cout<<endl<<argv[1]<<"是A类IP地址!"<<endl; 
if(ip[0]>=128 && ip[0]<=191) 
cout<<endl<<argv[1]<<"是B类地址!"<<endl; 
if(ip[0]>=192 && ip[0]<=223) 
cout<<endl<<"是C类IP地址!"<<endl; 
if(ip[0]>=224) 
cout<<endl<<argv[1]<<"是其他类型IP地址!"<<endl; 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -