获取本地IP地址的简易脚本工具

版权申诉
0 下载量 37 浏览量 更新于2024-10-22 收藏 778B ZIP 举报
资源摘要信息:"get_all_ip.zip_本地IP" 知识点1: 本地IP地址的概念 本地IP地址是指在局域网内部使用的IP地址,用于网络内部设备之间的通信。在一个私有网络中,IP地址可以是任意分配的,但在互联网上,只有通过网络地址转换(NAT)或通过路由器将本地IP地址转换为公网IP地址,本地网络中的设备才能与外部互联网通信。本地IP地址通常由四个数字组成,范围从**.*.*.*到**.***.***.***、***.**.*.*到***.**.***.***、以及***.***.*.*到***.***.***.***。 知识点2: 如何获取本地机器的IP地址 获取本地机器的IP地址有几种不同的方法。在Windows操作系统中,可以通过命令提示符运行`ipconfig`命令来查看所有网络接口的配置,包括IPv4地址和IPv6地址。在Linux系统中,可以使用`ifconfig`或`ip addr`命令。此外,网络管理员可能还会使用脚本或者专门的网络管理软件来获取和管理本地IP地址。 知识点3: 使用命令行获取IP地址的实例 例如,在Windows系统中,输入以下命令: ``` ipconfig ``` 将返回网络接口信息,包括物理地址、子网掩码、默认网关等,以及分配给本地机器的IP地址。 在Linux系统中,可以使用以下命令: ``` ifconfig ``` 或者 ``` ip addr ``` 这两个命令均能展示网络接口的相关信息,包括IP地址。 知识点4: 获取本地IP地址的意义 获取本地IP地址对于网络故障排查、网络安全配置、网络资源管理等方面至关重要。网络管理员需要了解所有网络设备的IP地址,以确保网络通信的正常运作,同时也可以通过IP地址对网络访问进行控制和安全防护。在开发应用程序时,了解设备的IP地址有助于进行网络编程和测试。 知识点5: 命令行脚本的应用 文件标题中提及的"get_all_ip.zip"可能是一个压缩包,包含了用于获取本地IP地址的命令行脚本。例如,一个名为"get_all_ip.txt"的文件可能包含了一系列命令,这些命令可以从命令行运行,以自动化地获取本地机器的所有IP地址。这种自动化方法减少了手动输入命令的需要,提高了效率。 知识点6: 文件列表中的"***.txt"含义 文件列表中的"***.txt"可能表示这是一个来自***网站的文件。***是一个提供各种编程语言资源和代码示例的网站,因此该文件可能包含有与获取IP地址相关的代码示例或说明。 知识点7: 压缩包的使用 压缩包是一种常见的文件存储格式,用于将多个文件打包成一个文件,并且通常会进行压缩以减少大小。压缩包可以使用诸如WinRAR、7-Zip等工具解压缩。在本例中,"get_all_ip.zip"可以被解压,以便获取其中的脚本文件,查看或执行这些脚本来获取本地IP地址。 知识点8: 本地网络设备的识别与管理 在本地网络中,了解每台设备的IP地址对于网络的维护和管理非常有帮助。网络管理员可能需要定期检查和记录所有设备的IP地址,以便于网络监控和故障处理。此外,当网络中新增或移除设备时,更新IP地址列表也是一个重要的管理任务。 通过以上分析,我们可以得出结论,这些文件及其标题和描述所涉及的知识点主要集中在如何获取本地机器的IP地址,及其在网络安全和管理中的重要性。文件名"get_all_ip.zip"表明它可能包含用于实现这一功能的脚本,而"***.txt"则暗示了可能的来源或内容说明。

#!/usr/bin/env python #coding: utf-8 import os from time import time from datetime import datetime from netmiko import ConnectHandler from openpyxl import Workbook from openpyxl import load_workbook def read_device_excel( ): ip_list = [] wb1 = load_workbook('E:\/Users/Wayne_Peng/Desktop/cs_lab.xlsx') ws1 = wb1.get_sheet_by_name("Sheet1") for cow_num in range(2,ws1.max_row+1): ipaddr = ws1["a"+str(cow_num)].value ip_list.append(ipaddr) return ip_list def get_config(ipaddr): session = ConnectHandler(device_type="huawei", ip=ipaddr, username="mtlops", password="cisco,123", banner_timeout=300) print("connecting to "+ ipaddr) print ("---- Getting HUAWEI configuration from {}-----------".format(ipaddr)) # config_data = session.send_command('screen-length 0 temporary') # config_data = session.send_command('dis cu | no-more ') # command = 'display version | display cpu-usage | display memory-usage' # config_data = session.send_command(command) commands = ['display version', 'display cpu-usage', 'display memory-usage'] config_data = '' for cmd in commands: output = session.send_command_timing(cmd) config_data += f'{cmd}\n{output}\n' session.disconnect() return config_data def write_config_to_file(config_data,ipaddr): now = datetime.now() date= "%s-%s-%s"%(now.year,now.month,now.day) time_now = "%s-%s"%(now.hour,now.minute) #---- Write out configuration information to file config_path = 'E:\/Users/Wayne_Peng/Desktop/' +date verify_path = os.path.exists(config_path) if not verify_path: os.makedirs(config_path) config_filename = config_path+"/"+'config_' + ipaddr +"_"+date+"_" + time_now # Important - create unique configuration file name print ('---- Writing configuration: ', config_filename) with open( config_filename, "w",encoding='utf-8' ) as config_out: config_out.write( config_data ) return def main(): starting_time = time() ip_list = read_device_excel() for ipaddr in ip_list: hwconfig = get_config(ipaddr) write_config_to_file(hwconfig,ipaddr) print ('\n---- End get config threading, elapsed time=', time() - starting_time) #======================================== # Get config of HUAWEI #======================================== if __name__ == '__main__': main() 加一段gevent,def run_gevent()

2023-05-26 上传