当前位置: 首页> 房产> 家装 > 星火教育培训机构_完整网站源码asp_深圳关键词优化报价_亚马逊关键词快速优化

星火教育培训机构_完整网站源码asp_深圳关键词优化报价_亚马逊关键词快速优化

时间:2025/7/9 14:34:52来源:https://blog.csdn.net/kouweizhu/article/details/145794078 浏览次数:0次
星火教育培训机构_完整网站源码asp_深圳关键词优化报价_亚马逊关键词快速优化

一、脚本功能

1.获取主机名

2.获取外网IP(通过多个公共API尝试) IPV4和IPV6

3.获取所有网络接口的内网IP

4.保存至文件并打印信息

输出示例:

 

主机名: MyComputer

内网IPv4地址:
  - 192.168.1.100
  - 192.168.56.1

内网IPv6地址:
  - 2001:0db8:85a3:0000:0000:8a2e:0370:7334

外网IPv4: 203.0.113.1
外网IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

二、注意事项

1.获取外网IP需要网络连接
2.某些网络环境可能会阻止访问IP查询服务
3.如果在代理或VPN环境下,获取的外网IP可能是代理或VPN的IP
4.内网IP可能会有多个,特别是在有多个网络接口的情况下

5.考虑暂时关闭防火墙

6.如果你的网络不支持 IPv6,那么相关的 IPv6 地址将显示为"无法获取"
7.某些系统可能需要管理员权限才能获取完整的网络接口信息

三、准备工作

导入库:

import socket
import requests
import json
import time
from datetime import datetime

四、完整代码

import socket
import requests
import json
import time
from datetime import datetimedef get_external_ipv4():"""获取外网IPv4地址"""apis = [{'url': 'https://api.ipify.org?format=json','timeout': 5,'headers': {'User-Agent': 'Mozilla/5.0'},'json': True,'key': 'ip'},{'url': 'https://api4.ipify.org?format=json','timeout': 5,'headers': {'User-Agent': 'Mozilla/5.0'},'json': True,'key': 'ip'},{'url': 'https://ipv4.icanhazip.com','timeout': 5,'headers': {'User-Agent': 'curl/7.64.1'}}]for api in apis:try:print(f"尝试从 {api['url']} 获取外网IPv4...")response = requests.get(url=api['url'],timeout=api['timeout'],headers=api['headers'])if response.status_code == 200:if api.get('json'):data = response.json()return data[api['key']]else:return response.text.strip()except Exception as e:print(f"当前接口请求失败: {str(e)}")continuereturn "无法获取IPv4地址"def get_external_ipv6():"""获取外网IPv6地址"""apis = [{'url': 'https://api6.ipify.org?format=json','timeout': 5,'headers': {'User-Agent': 'Mozilla/5.0'},'json': True,'key': 'ip'},{'url': 'https://ipv6.icanhazip.com','timeout': 5,'headers': {'User-Agent': 'curl/7.64.1'}}]for api in apis:try:print(f"尝试从 {api['url']} 获取外网IPv6...")response = requests.get(url=api['url'],timeout=api['timeout'],headers=api['headers'])if response.status_code == 200:if api.get('json'):data = response.json()return data[api['key']]else:return response.text.strip()except Exception as e:print(f"当前接口请求失败: {str(e)}")continuereturn "无法获取IPv6地址"def get_internal_ips():"""获取内网IP地址(同时获取IPv4和IPv6)"""internal_ips = {'ipv4': [], 'ipv6': []}try:# 获取所有网络接口的所有IPhostname = socket.gethostname()addrs = socket.getaddrinfo(hostname, None)for addr in addrs:ip = addr[4][0]# 判断是否为IPv6地址if ':' in ip:if not ip.startswith('fe80:') and not ip.startswith('::1'):if ip not in internal_ips['ipv6']:internal_ips['ipv6'].append(ip)else:if not ip.startswith('127.'):if ip not in internal_ips['ipv4']:internal_ips['ipv4'].append(ip)# 使用备用方法获取IPv4if not internal_ips['ipv4']:try:s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(("8.8.8.8", 80))ip = s.getsockname()[0]s.close()if ip not in internal_ips['ipv4']:internal_ips['ipv4'].append(ip)except:passexcept Exception as e:print(f"获取内网IP出错: {str(e)}")return internal_ipsdef save_to_file(data):"""保存信息到文件"""try:with open('../办公与多媒体/ip_info.txt', 'a', encoding='utf-8') as f:f.write(f"\n{'=' * 50}\n")f.write(f"检测时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n")f.write(f"主机名: {data['hostname']}\n\n")f.write("内网IPv4地址:\n")for ip in data['internal_ipv4']:f.write(f"  - {ip}\n")f.write("\n内网IPv6地址:\n")for ip in data['internal_ipv6']:f.write(f"  - {ip}\n")f.write(f"\n外网IPv4: {data['external_ipv4']}\n")f.write(f"外网IPv6: {data['external_ipv6']}\n")f.write(f"{'=' * 50}\n")except Exception as e:print(f"保存文件时出错: {str(e)}")def main():try:print("开始获取网络信息...\n")# 获取主机名hostname = socket.gethostname()print(f"主机名: {hostname}\n")# 获取内网IPinternal_ips = get_internal_ips()print("内网IPv4地址:")for ip in internal_ips['ipv4']:print(f"  - {ip}")print("\n内网IPv6地址:")for ip in internal_ips['ipv6']:print(f"  - {ip}")# 获取外网IPprint("\n正在获取外网IP...")external_ipv4 = get_external_ipv4()external_ipv6 = get_external_ipv6()print(f"\n外网IPv4: {external_ipv4}")print(f"外网IPv6: {external_ipv6}")# 保存信息到文件data = {'hostname': hostname,'internal_ipv4': internal_ips['ipv4'],'internal_ipv6': internal_ips['ipv6'],'external_ipv4': external_ipv4,'external_ipv6': external_ipv6}save_to_file(data)print("\n信息已保存到 ip_info.txt 文件")except Exception as e:print(f"程序执行出错: {str(e)}")if __name__ == "__main__":# 确保已安装requests库# pip install requestsmain()# 等待用户按键退出input("\n按回车键退出...")

 

 

关键字:星火教育培训机构_完整网站源码asp_深圳关键词优化报价_亚马逊关键词快速优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: