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计算最大优先级队列实例
Dec 18 Python
Python求两个list的差集、交集与并集的方法
Nov 01 Python
python实现自动更换ip的方法
May 05 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
May 19 Python
Python 实现一个计时器
Jul 28 Python
Django自带的用户验证系统实现
Dec 18 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
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
入党积极分子思想汇报
2014/01/02 职场文书
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
乐山大佛导游词
2015/02/02 职场文书
教师工作决心书
2015/02/04 职场文书
小时代观后感
2015/06/10 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers