前言

现在有这样的需求

正文

使用net包

net包的方法可以判断是否是 ip,需要注意的是 ip 分为 ipv4 和 ipv6

此方法将 v4 和 v6 一起判断出来

		address := net.ParseIP(ip)
if address == nil {
// 没有匹配上
fmt.Println(ip)
} else {
// 匹配上
fmt.Println(address)
}

弊端: 无法获取到是 ipv4 还是 ipv6, 因此如果需求是去除 ipv6 需要自己写

匹配 ipv4

我们可以使用正则来匹配 ipv4

		matched, err := regexp.MatchString("((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}", ip)
if err != nil {
fmt.Println("ip匹配出现错误")
return
}
if matched { // 匹配上了
data = append(data, ip)
}

go判断字符串是否是IP地址的更多相关文章

  1. 判断字符串是否是IP地址

    #include <stdio.h>#include <string.h> bool isIP(const char* str); int main(){ char str[] ...

  2. 判断字符串是否为ip地址----python

    def isIp(ip_str): flag = True if '.' not in ip_str: return False if ip_str.count('.')!=3 : return Fa ...

  3. C# 判断 当前设备的IP地址、默认网关、子网掩码在不在同一网段内

    要判断两个IP地址是不是在同一个网段,就将它们的IP地址分别与子网掩码做与运算,得到的结果一网络号,如果网络号相同,就在同一子网,否则,不在同一子网. 例:假定选择了子网掩码255.255.254.0 ...

  4. 判断是否是合法的IP地址

    ipv4 import re #简单的匹配给定的字符串是否是ip地址,下面的例子它不是IPv4的地址,但是它满足正则表达式 if re.match(r"^(?:[0-9]{1,3}\.){3 ...

  5. Java正则表达式提取String字符串中的IP地址

    /** * 正则提前字符串中的IP地址 * @param ipString * @return */ public static List<String> getIps(String ip ...

  6. Restore IP Addresses,将字符串转换成ip地址

    问题描述: Given a string containing only digits, restore it by returning all possible valid IP address c ...

  7. 用正则匹配一串字符串中的ip地址

    IP地址有4段组成,每一段数字的范围为0-255,在一段文本中提取ip地址可以这样 $src = 'src = alsdlk ks sdf2.3.3.4 234.193.1.120.1232 d.23 ...

  8. 将字符串表示的IP地址转变为整形表示

    当时面试上机的想法是,直接使用uint32_t变量来存ip地址,遍历字符串带".",然后去值,利用移位来将这个值填到uint32_t对应的位置上.这样的麻烦之处在于: 1,遍历字符 ...

  9. python3 判断字符串是否为IP

    #!/usr/bin/python3 # -*- coding: utf-8 -*- import re ip = "192.168.1.1" ip = re.findall(&q ...

随机推荐

  1. Day6【Scrum 冲刺博客】

    每日会议总结 昨天已完成的工作 方晓莹(PIPIYing) 对接住户相关接口 处理token过期重定向.页面跳转.错误状态处理等内容 方子茵(Laa-L) 暂无 黄芯悦(Sheaxx) 完善物业报修页 ...

  2. javascript中 fn() 和 return fn() 的区别

    在js中用return和不用return,输出结果有的时候傻傻搞不清,之前在网上看到个例子挺经典,不过讲的不清楚,上例子: var i = 0; function fn(){    i++;   if ...

  3. 一个不倒翁App

  4. Algorithm homework 1

    一.已知下列递推式: \[C(n)= \begin{cases} 1 & , & n = 1 \\ 2C(n/2) + n - 1& , & n \geq 2 \end ...

  5. 题解-洛谷P7114 字符串匹配

    题面 洛谷P7114 字符串匹配 \(T\) 组测试数据.给定字符串 \(S\),问有多少不同的非空字符串 \(A\),\(B\),\(C\) 满足 \(S=ABABAB...ABC\) 且 \(A\ ...

  6. Pytorch系列之常用基础操作

    各种张量初始化 创建特殊类型的tensor a = torch.FloatTensor(2,3) a = torch.DoubleTensor(2,3) ... 设置pytorch中tensor的默认 ...

  7. MISC-吹着贝斯扫二维码

    题目 [安洵杯 2019]吹着贝斯扫二维码 解压附件,有36个文件和一个压缩包,压缩包带密码和备注 分析 文件类型 随便打开一个不明文件,是jpg图片啊(FF D8 FF) 改一个试试,有一个小块二维 ...

  8. django 取出数据库的时间与当前时间相加减

    1 转换时区utc比北京时间慢八个小时 from datetime import tzinfo, timedelta, datetime ZERO = timedelta(0) class UTC(t ...

  9. Linux杂谈: gcc对结构体大小的默认处理方式

    1. 发现问题 最近在编写代码过程中发现,对一个结构体进行 sizeof 操作时,有时候大小是填充过的,有时候又没有填充. 那么,如果在代码中没有显示的指定要求编译器进行对齐时,gcc的默认处理是怎样 ...

  10. Flink连接器-批处理-读写Hbase

    Flink批处理与hbase的读写 source-hbase 父类 是模仿官方写的. import org.apache.flink.api.common.io.LocatableInputSplit ...