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下如何让web元素的生成更简单的分析
Jul 17 Python
Python新手实现2048小游戏
Mar 31 Python
利用python实现数据分析
Jan 11 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
在python中pandas的series合并方法
Nov 12 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
Python使用pdb调试代码的技巧
May 03 Python
Python 私有属性和私有方法应用场景分析
Jun 19 Python
python MD5加密的示例
Oct 19 Python
Python descriptor(描述符)的实现
Nov 15 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 采集程序中常用的函数
2009/12/09 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
2020/08/17 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
JQuery 无废话系列教程(二) jquery实战篇上
2009/06/23 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
JS实现下拉框的动态添加(附效果)
2013/04/03 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
Python 比较两个数组的元素的异同方法
2017/08/17 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
python 中xpath爬虫实例详解
2019/08/26 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
社团招新策划书
2014/02/04 职场文书
教师个人剖析材料
2014/02/05 职场文书
数学国培研修感言
2014/02/13 职场文书
文艺晚会主持词
2014/03/24 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
南京导游词
2015/02/03 职场文书
三八妇女节慰问信
2015/02/14 职场文书
新手初学Java List 接口
2021/07/07 Java/Android