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 相关文章推荐
python打开网页和暂停实例
Sep 30 Python
Python计算三角函数之asin()方法的使用
May 15 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
Python爬虫实战之12306抢票开源
Jan 24 Python
NumPy 数组使用大全
Apr 25 Python
关于python导入模块import与常见的模块详解
Aug 28 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
一文搞懂如何实现Go 超时控制
Mar 30 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
XP折叠菜单&amp;仿QQ2006菜单
2006/12/16 Javascript
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
firefox插件Firebug的使用教程
2010/01/02 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
Python Requests 基础入门
2016/04/07 Python
Python 元类实例解析
2018/04/04 Python
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
python实现归并排序算法
2018/11/22 Python
python中Lambda表达式详解
2019/11/20 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
个人收入证明范本
2014/01/12 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
体育节口号
2014/06/19 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书