判断是否是有效的IP地址

#include<stdio.h>
#include<string.h>

bool isValidIp(char *s)
{
	int len=strlen(s);
	int i=0;
	if(len<7)
		return false;
	for(i=0;i<len;i++)
	{
		if(('0'<=s[i]&&s[i]<='9')||(s[i]=='.'))
			continue;
		else
			return false;
	}
	i=0;
	int c[7]={0},j=0;
	for(i=0;i<len;i++)
	{
		if(s[i]=='.')
		{
			j++;
			c[j]=1;
			j++;
		}
		else
		{
			c[j]=c[j]*10+(s[i]-'0');
		}
	}
	if((0<=c[0]&&c[0]<=255)&&(c[1]==1&&c[3]==1&&c[5]==1)&&(0<=c[2]&&c[2]<=255)&&(0<=c[4]&&c[4]<=255)&&(0<=c[6]&&c[6]<=255))
		return true;
	else
		return false;
}

int main()
{
	char s[100];
	while(gets(s))
	{
		if(isValidIp(s))
			printf("True!\n");
		else
			printf("False!\n");
	}
	return 0;
}

时间: 2024-10-12 16:02:11

判断是否是有效的IP地址的相关文章

判断一个字符串是否是ip地址的实现方法

最近在学习java,研究一些算法,找些联系题,自己去下手试试.这里记录下学习历程,也增强自己的记忆.初学者,见笑了.从开始判断一个字符串是不是正规ipv4的地址开始练习吧,初步代码如下: public class isIpv4{ public String cutblank(String str){ //如果字符串前有空格            while(str.startsWith(""))            {            str=  str.substring(1

PHP获取IP地址及根据IP判断城市实现城市切换或跳转

PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: ? <? //PHP获取当前用户IP地址方法 $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $xp_UserIp = ($xp_UserIp) ? $xp_

判断一个字符串是不是一个合法的IP地址

最近在笔试的时候遇到碰一道算法题, 要求判断一个字符串是不是合法的ip地址. 将我的思路发出来分享一下,不一定正确,也不一定是最优的方法.希望能分享一些交流 要求用java或者c来实现,我的java代码: 1 public class Test_ip { 2 //程序入口 3 public static void main(String[] args) { 4 Solution s = new Solution(); // 业务逻辑放在Solution类里面 5 //String test_st

使用Java技术获取客户端的IP地址

今天发文一篇较为简单,且文档满天飞的获取IP地址的java代码,可能很多小白们不一定能找到完整兼容的方法,故在此送给小白们一份干货. 此文也是为了接下来的时间里,我将会写一篇使用HTML5技术扫描PC二维码且在WAP端实现可上传图片或视频的文档,这里会运用到根据参数动态生成二维码和传输文件的技术,也会应用到ip及端口的东西. 下面是运用java代码判断当前客服端IP地址的逻辑: private String getInternetIp(HttpServletRequest request) {

Filter设计实现IP地址限制

示例:创建一个IP过滤Filter,当一个用户发出访问请求的时候,首先通过过滤器进行判断, 如果用户的IP地址被限制,就禁止访问,只有合法的IP才可以继续访问.IP过滤Filter代码如下: IPFilter.java 1 package com.mhb; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.Filter; 7 import javax.servlet.Fil

IP 地址

IP 地址 IP 地址及其表示方法 我们把整个因特网看成为一个单一的.抽象的网络.IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符. IP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned Names and Numbers)进行分配 . IP 层次结构 由于当初美国国防部一开始设计TCP/IP协议的时候,没想过把全球的计算机连接起来,所以当时设计的IP 地址只有32位,发展到如今

js判断ip地址,子网掩码,网关的逻辑性检查

因为要做静态地址配置的js校验,找了好多资料发现网上都是关于ip,mask的有效性检查,没有ip,submask,gateway的逻辑性判断,自己写下代码供需要的人参考. 普及下网关地址知识: 就是进行与运算1与1得1,1与0为0,0与0为0.首先把ip和子网掩码展开 10.70.64.223 00001010 .01000110.01000000.11011111 255.255.255.0 111111111.11111111.11111111.00000000 网段就是 00001010

使用C语言判断一个IP 地址是否为私有地址

参考:https://zhidao.baidu.com/question/191740827.html 私有IP地址范围:A: 10.0.0.0 10.255.255.255 10.0.0.0/8B: 172.16.0.0 172.31.255.255 172.16.0.0/12C: 192.168.0.0 192.168.255.255 192.168.0.0/16 在C语言中的 socket 结构体如下 struct sockaddr_in { short sin_family; USHOR

C#判断ip地址是否ping的通

Ping pingSender = new Ping(); PingReply reply = pingSender.Send("127.0.0.1",120);//第一个参数为ip地址,第二个参数为ping的时间 if(reply.Status == IPStatus.Success) { //ping的通 } else { //ping不通 } C#判断ip地址是否ping的通,布布扣,bubuko.com