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连接sql server乱码的解决方法
Jan 28 Python
python和C语言混合编程实例
Jun 04 Python
Python内置函数dir详解
Apr 14 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
Python使用paramiko操作linux的方法讲解
Feb 25 Python
python numpy实现文件存取的示例代码
May 26 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
Elasticsearch 数据类型及管理
Apr 19 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
PHP脚本的10个技巧(8)
2006/10/09 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
python 测试实现方法
2008/12/24 Python
Python排序算法实例代码
2017/08/10 Python
Python优先队列实现方法示例
2017/09/21 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
QML实现钟表效果
2020/06/02 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
高中生班主任评语
2014/04/25 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
Java使用JMeter进行高并发测试
2021/11/23 Java/Android
vue elementUI批量上传文件
2022/04/26 Vue.js