python3判断IP地址的方法


Posted in Python onMarch 04, 2021

本文实例为大家分享了python3判断IP地址的具体代码,供大家参考,具体内容如下

输入一串字符,判断该字符串是否为点分十进制的IP地址,若是则转换为16进制输出,否则输出“Error”

注意:输入可能是任意的一个字符串,比如“abc.bas.fefe.4r4”或者“23.23.11.23.123”
这都是不合法的IP地址

例如

输入:192.41.6.20

输出:0xC0290614

输入:257.32.23.1

输出:Error

解1

import re
def isIP(str):
 p = re.compile('^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$')
 if p.match(str):
  return True
 # else:
 #  return False
myStr = input()
if isIP(myStr):
 print(IP(myStr).strHex().upper())
 # ip = list(map(int, myStr.split('.')))
 # print('0x', end='')
 # for i in ip:
 #  print(hex(i)[2:].upper().rjust(2, '0'), end='')
else:
 print('Error')

解2:

def change(lis):
 if len(lis)!=4:
 return 'Error'
 try:    # 判断字符串是否存在非数字
 lis=[int(i) for i in lis]
 except:
 return 'Error'
 for i in lis:
 if i<0 or i>255: # 判断ip地址是否合法
 return 'Error'
 temp='0x'   #记录16进制数
 for i in lis:
 a=hex(int(i))[2:].upper().rjust(2,'0') #转换为16进制
 # if len(a)!=2:
 # a='0'+a
 temp+=a
 return temp
s=list(map(str,input().split('.')))
print(change(s))

解3

l = input().split(".")
if len(l) != 4:
 print("Error")
else:
 s = ""
 for i in l:
  try:
   num = int(i)
   if num > 255 or num < 0:
    print("Error")
    s = ""
    break
   else:
    s += hex(num)[2:].upper().rjust(2, "0")
  except ValueError:
   print("Error")
   s = ""
   break
 if s:
  print("0x" + s)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3处理文件中每个词的方法
May 22 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
python 调用c语言函数的方法
Sep 29 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
Python(PyS60)实现简单语音整点报时
Nov 18 Python
Python阶乘求和的代码详解
Feb 14 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
浅谈Python 钉钉报警必备知识系统讲解
Aug 17 Python
python爬虫使用scrapy注意事项
Nov 23 Python
python 合并多个excel中同名的sheet
Jan 22 Python
Python爬虫基础之爬虫的分类知识总结
May 13 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 #Python
python和opencv构建运动检测器的实现
Mar 03 #Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 #Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 #Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 #Python
对Pytorch 中的contiguous理解说明
Mar 03 #Python
Flask中jinja2的继承实现方法及实例
Mar 03 #Python
You might like
星际RPG字典
2020/03/04 星际争霸
对PHP PDO的一些认识小结
2015/01/23 PHP
Laravel中的chunk组块结果集处理与注意问题
2018/08/15 PHP
Script的加载方法小结
2011/01/12 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
python学习基础之循环import及import过程
2018/04/22 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
python 正确保留多位小数的实例
2018/07/16 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
项目专员岗位职责
2013/12/04 职场文书
幼儿教育感言
2014/02/05 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
债务追讨律师函
2015/06/24 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers