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中下划线的使用方法
Mar 27 Python
Python NumPy库安装使用笔记
May 18 Python
Python中字符串的修改及传参详解
Nov 30 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
python+opencv实现霍夫变换检测直线
Oct 23 Python
python实现名片管理系统项目
Apr 26 Python
Django模型序列化返回自然主键值示例代码
Jun 12 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Python range与enumerate函数区别解析
Feb 28 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
完美解决pycharm 不显示代码提示问题
Jun 02 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
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
PHP chop()函数讲解
2019/02/11 PHP
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
2017/04/05 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
2017/10/11 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
介绍Python的Django框架中的QuerySets
2015/04/20 Python
python中set常用操作汇总
2016/06/30 Python
详解python开发环境搭建
2016/12/16 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
Python3进制之间的转换代码实例
2019/08/24 Python
python plotly画柱状图代码实例
2019/12/13 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
秘书岗位职责
2013/11/18 职场文书
老师自我鉴定范文
2013/12/25 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
导游词之潮音寺
2019/09/26 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android