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类定义的讲解
Nov 01 Python
Python的内存泄漏及gc模块的使用分析
Jul 16 Python
python使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
python中__call__内置函数用法实例
Jun 04 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
python 对key为时间的dict排序方法
Oct 17 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
Python 私有化操作实例分析
Nov 21 Python
Python基础之hashlib模块详解
May 06 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
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
PHP常用数组函数介绍
2014/07/28 PHP
Destoon实现多表查询示例
2014/08/21 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
图解prototype、proto和constructor的三角关系
2016/07/31 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
RequireJs的使用详解
2017/02/19 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python实现识别手写数字大纲
2018/01/29 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
python字符串的拼接方法总结
2019/11/18 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
python获取栅格点和面值的实现
2020/03/10 Python
使用Keras画神经网络准确性图教程
2020/06/15 Python
java程序员面试交流
2012/11/29 面试题
工商学院毕业生自荐信
2013/11/12 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
党小组鉴定意见
2015/06/02 职场文书
高二英语教学反思
2016/03/03 职场文书
庭外和解协议书
2016/03/23 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL