python获取网络信息

这篇具有很好参考价值的文章主要介绍了python获取网络信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1关:获取MAC地址

任务描述

本关任务:用Python获取本机Mac地址并输出。

相关知识

为了完成本关任务,你需要掌握: 1.如何获取MAC地址; 2.如何处理字符串。

获取Mac地址

MAC地址也称物理地址,它是一个用来确认网络设备位置的地址。在OSI模型中,第三层网络层负责IP地址,第二层数据链接层则负责MAC地址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。

查看mac地址的方法

  • 常见的网络命令:
    • windows 命令:ipconfig
    • linux命令:ifconfig
  • 程序来获取MAC地址。

下面介绍如何使用python获取本机的MAC地址。

1.uuid模块

UUID(Universally Unique Identity)的缩写,是一种软件建构的标准,通常由32字节16进制数表示(128位),它可以保证时间和空间的唯一性。 Python有一个名为uuid(通用唯一标识符)的库,用于生成128位的随机对象。该库根据系统时间和计算机的网络地址生成唯一的id。uuid(对象是不可变的,它包含一些用于创建各种唯一id的函数。uuid常用于:基于id的MAC地址、创建唯一的随机id、加密哈希值或随机文档等。

UUID由五个组件组成,每个组件都有固定的长度。连字符将各个部分分开。

UUID的格式“ 8-4-4-4-12”, 如:“ 00000000-0000-0000-0000-000000000000”

用uuid可以获取本机网关的MAC地址,方法介绍如下:

2.获取MAC地址的相关方法
uuid.getnode()

获取硬件的MAC地址,并以48位长度的正整数(十进制)形式返回,如果一个机器有多个网络接口,可能返回其中的任一个。

uuid.uuid1(node=None, clock_seq=None)

node和clock_seq是可选参数 node是硬件地址,它是一个48位正整数。如果未给出节点,则使用 uuid.getnode() 功能来获取当前主机的通用管理的MAC地址。 如果给定clock_seq,它将用作序列号。否则,选择一个随机的14位序列号。

示例如下:

mac = uuid.uuid1()

输出(16进制): UUID('a82b2eb0-abcd-eaec-8a35-0657e38e6a7d')

类型为:UUID类型

可以将其转换为字符串: str(mac)

其中后12位即:0657e38e6a7d,某网关的MAC地址。

mac = uuid.UUID( int=uuid.getnode() )

输出(16进制): UUID('00000000-0000-0000-0000-0657e38e6a7d')

类型为:UUID类型

可以将其转换为字符串: str(mac)

其中后12位即:0657e38e6a7d,某网关的MAC地址。

字符串处理常用方法举例
`join(seq)`

以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串。 示例:

s1 = "-"
seq = ("h", "e", "l", "l", "o") # 字符串序列
print (s1.join(seq))

输出结果:

h-e-l-l-o
`len(string)`

 返回字符串长度。

split(str="", num=string.count(str))

str -- 分隔符;

num -- 分割次数。默认为 -1, 即分隔所有。

示例: 

str = "this is string example"
print (str.split( ))       # 以空格为分隔符
print (str.split('i',1))   # 以 i 为分隔符
print (str.split('a'))     # 以 a 为分隔符 

输出结果:

['this', 'is', 'string', 'example']
['th', 's is string example']
['this is string ex', 'mple'] 
[ : ]

 截取字符串中的一部分,遵循左闭右开原则,str1[0:2] 是不包含第 3 个字符的。示例:

str1 = "this is string example"
print(str1[0:2])

 输出结果:

th

编程要求

根据提示,在右侧编辑器补充代码,

1、获取并输出计算机的MAC地址(十六进制)。

如: xxxxxxxxxxxx

测试说明

平台会对你编写的代码进行测试:


开始你的任务吧,祝你成功!文章来源地址https://www.toymoban.com/news/detail-771672.html

import uuid

# ********Begin********#
# 1、获取MAC地址(十六进制)
mac = uuid.uuid1()
# 2、将1中获取的结果转化为字符串类型
mac = str(mac)
# 3、字符串类型截取后12位
str1 = mac[-12:]
# 4、输出MAC地址
print(str1)

# ********End********#

# 经典阅读理解题,根据题中意思照抄就行

第2关:获取主机名称和ip地址 

任务描述

本关任务:

1、用Python获取主机名并输出;

2、用Python获取ip地址并输出。

相关知识

为了完成本关任务,你需要掌握:

1.socket基本知识;

2.如何获取主机名和IP。

socket相关知识

网络上的两个程序通过一个双向的通信连接实现数据交换,这个连接的一端称为一个socket。socket通常被叫做“套接字”,用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。

  • python中的socket库提供了处理公共传输的特定类,以及一个用于处理其余部分的通用接口。
  • socket是内置库,无需安装;

socket库的函数举例:

gethostname() 

返回主机名,示例:

socket.gethostname()
gethostbyname('主机名')

 将主机名转换为ipv4地址

gethostbyname_ex('主机名')

返回主机名、主机别名列表、主机IP地址列表

编程要求

根据提示,在右侧编辑器补充代码:获取并输出计算机的主机名和IP地址;

测试说明

平台会对你编写的代码进行测试:


开始你的任务吧,祝你成功!

import socket

# ********Begin********#
# 1、获取主机名
hostname = socket.gethostname()

# 2、获取IP
ip = socket.gethostbyname_ex(hostname)

print("主机名:", hostname)
print("IP:", ip)
# ********End********#

# 还是阅读理解,注意要获取ip地址的时候不能直接照抄阅读材料,参考主机名获取方式

第3关:保存/打开网络信息文件

任务描述

当程序运行时,变量是保存数据的好方法,但变量、序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中。 Python 提供了内置的文件对象,以及对文件、目录进行操作的内置模块,通过这些技术可以很方便地将数据保存到文件(如文本文件等)中。

本关任务:

1、将第二关获取的主机名和IP地址写入文件;

2、读取文件并输出文件内容。

相关知识

为了完成本关任务,你需要掌握:

1、文件路径;

2、Python文件读写操作。

文件

关于文件,它有两个关键属性:

  • “文件名”:为每个文件设定的名称;
  • “路径”:指明文件在计算机上的位置。

示例1:

(windows系统上,D盘myfile文件夹下有个test.txt文件)

文件路径为:D:\myfile\

文件名为: test.txt

说明:在 Windows 上,路径书写使用反斜杠 "" 作为文件夹之间的分隔符。但在 OS X 和 Linux 上,使用正斜杠 "/" 作为它们的路径分隔符。

示例2:

(linux系统上,myfile文件夹下有个test.txt文件)

文件路径为:/myfile

文件名为: test.txt

绝对路径与相对路径

明确一个文件所在的路径,有 2 种表示方式,分别是:

  • 绝对路径: 从根文件夹开始。

Window 系统中以盘符(C:、D:)作为根文件夹; 而 OS X 或者 Linux 系统以 / 作为根文件夹。

  • 相对路径: 文件相对于当前工作目录所在的位置。

例1:当前工作目录为 "C:\Windows\System32",若文件 demo.txt 就位于这个 System32 文件夹下,则 demo.txt 的相对路径表示为 ".\demo.txt", 其中 .\ 就表示当前所在目录; 同时“..\” 表示当前所在目录的父目录。

例2:当前工作目录为 "/data/workspace/myshixun/src",若文件 demo.txt 就位于这个 src 文件夹下,则 demo.txt 的相对路径表示为 "./demo.txt",其中 ./就表示当前所在目录; 同时“../” 表示当前所在目录的父目录。

Python文件操作

Python 中,对文件的操作有很多种,常见的操作包括创建、删除、修改权限、读取、写入等,这些操作可大致分为以下 2 类:

  • 系统级操作:删除、修改权限,作用于文件本身;
  • 应用级操作:写入、读取,是文件最常用的操作。

文件的应用级操作可以分为以下 3 步,每一步都需要借助对应的函数实现:

  • 1、打开文件

open() 函数用于创建或打开指定文件,该函数的常用语法格式如下:

file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])
  • file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。需要注意的是,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。
  • mode:可选参数,用于指定文件的打开模式。可选的打开模式:如:
  • r 只读模式打开文件;
  • w 以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容;
  • 如果不写,则默认以只读(r)模式打开文件。
  • buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区。
  • encoding:可选参数,手动设定打开文件时所使用的编码格式。

示例:

f = open("./a.txt", w)
print(f)
  • 2、对已打开文件做读/写操作

  • 读取文件内容

可使用 read()、readline() 以及 readlines() 函数 read() :逐个字节(或者逐个字符)读取文件中的内容; readline() :用于读取文件中的一行; readlines(): 用于读取文件中的所有行。 示例:

f = open("./test.txt",'r')
data = f.readlines()
print(data)
  • 向文件中写入内容

write() :可以向文件中写入指定内容; 示例:

f = open("./test.txt", 'w')
f.write("写入的数据")
  • 3、关闭文件

完成对文件的读/写操作之后,最后需要关闭文件。 使用 close() 函数关闭文件。 示例:

f.close()

编程要求

根据提示,在右侧编辑器补充代码,

1、将第二关获取的主机名和IP地址写入文件,文件存储路径为'/data/workspace/myshixun/src/step3',文件名为'test.txt';

2、读取test.txt,并输出文件内容。

测试说明

平台会对你编写的代码进行测试:


开始你的任务吧,祝你成功!

import socket

# 获取主机名
hostname = socket.gethostname()
# 获取IP
ip = socket.gethostbyname(hostname)
# ********Begin********#
# 1、写入文件
f = open('/data/workspace/myshixun/src/step3/test.txt', "w")
f.write(hostname)
f.write(ip)
f.close()
# 2、读取文件
f = open('/data/workspace/myshixun/src/step3/test.txt', "r")

# 3、输出文件内容
print(f.read())
f.close()
# ********End********#

# 具体的没啥说的,还是阅读理解,就是别照抄阅读材料就好

到了这里,关于python获取网络信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第九十六回 网络综合示例:获取天气信息

    我们在上一章回中介绍了dio库中转换器相关的内容,本章回中将介绍网络综合示例: 获取天气信息 .闲话休提,让我们一起Talk Flutter吧。 我们在前面章回中介绍了网络操作相关的内容,本章回中将综合利用这些内容实现一个获取天气信息的例子。主要包含dio库的使用、网络操

    2024年02月14日
    浏览(48)
  • Qt——实现一个获取本机网络信息的界面

    networkinformation.h : networkinformation.cpp : main.cpp :

    2023年04月09日
    浏览(33)
  • 获取小程序生产、开发、体验等环境、版本信息、appid等信息

    可以把环境设置单独写的一个js里方便接口统一控制环境,完整代码如下 1、判断环境 env.js(该例子是在utils目录下创建的env.js,如果没有先创建个utils目录,也可以在其他目录创建env.js)   2、app.js里引用env以及使用 这样其他页面在写接口时就可以直接这一个地方切换环境就

    2024年02月17日
    浏览(36)
  • 鸿蒙应用开发学习:获取手机位置信息

    一、前言 移动应用中经常需要获取设备的位置信息,因此在鸿蒙应用开发学习中,如何获取手机的位置信息是必修课。之前我想偷懒从别人那里复制黏贴代码,于是在百度上搜了一下,可能是我输入的不对,结果没有找到想要的资料。于是我只能到官网上学习相关的开

    2024年01月24日
    浏览(46)
  • 微信小程序开发之获取用户信息

    微信开发者工具 Stable 1.06.2303220 云开发控制台 v1.5.47 openid 是小程序用户的唯一标识。注意, openid 并不是微信用户的唯一标识,它是和小程序绑定的。也就是说,同一个微信用户,他在小程序A中的openid和小程序B中的openid是不同的。 头像和名称并不能唯一代表用户。头像名称

    2024年02月16日
    浏览(42)
  • uniapp开发小程序获取定位信息(腾讯地图)

    定位一直是一个让人头疼的问题,不是这个有问题就是那里有问题。这里结合我多方查找和实际运行,获得的一些经验给予分享。 怎么进行定位?基本流程是: 1.去腾讯位置服务的控制那里创建一个应用 腾讯位置服务 - 立足生态,连接未来 (qq.com) 2.添加一个key,并开通WebS

    2024年02月22日
    浏览(63)
  • 【Android开发基础】蓝牙信息的获取(Bluetooth)

    描述:蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接。蓝牙使当前的一些便携移动设备和计算机设备能够不需要电缆就能连接到互联网,并且可以无线接入互联网。

    2024年02月09日
    浏览(40)
  • android开发获取手机麦克风设备信息

    之前为了测试蓝牙耳机的麦克,想从蓝牙耳机的麦克录音。尝试发现三星、小米自带的录音机并不能从蓝牙录音。看了网上一篇文章,提供了一个特定的录音APP,才支持开启蓝牙录音功能。 非常令人疑惑。想到现在的手机,有不只一个麦克风,是否能开发一个可选择录音源的

    2024年04月16日
    浏览(44)
  • GPT应用开发:编写插件获取实时天气信息

    欢迎阅读本系列文章!我将带你一起探索如何利用OpenAI API开发GPT应用。无论你是编程新手还是资深开发者,都能在这里获得灵感和收获。 本文,我们将继续展示聊天API中插件的使用方法,让你能够轻松驾驭这个强大的工具。 首先给大家展示下插件的运行效果,如下图所示:

    2024年01月20日
    浏览(44)
  • 【Android开发基础】手机传感器信息的获取

    描述:关于传感器的使用,我在同栏目下发了一篇关于传感器(方向传感器、加速度传感器)的使用,这篇博客主要以获取不同手机所支持的传感器信息为主,具体如何使用这些传感器,需要自己进行查阅和学习,也可以私聊我。 博客:传感器(方向传感器、加速度传感器)

    2024年02月10日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包