#coding

vercel部署的脚本,dns服务器是cf,本来设置的解析到某个ip,dns check和17ce.com都没问题,但是今天quantx打开发现被解析到另外一个cf海外ip,导致墙内不能直接访问。

quantx设置了好几个dns服务器,不想手动检测,搜了一下发现这个脚本,批量处理多DNS多域名的nslookup解析

前两天用gpt的时候,装好了python环境,这下试试能不能自己应用一个脚本解决实际问题。

代码很简单,就是新建一个csv文件,填好内容,然后执行就行了。ide用了最近很火的cursor,虽然我现在的编程程度其实连ide是什么意思都不清楚。

遇到报错,一直提示没有domain字段,翻来覆去地检查,明明没有问题啊,用cursor的提示找到了思路,把它的编码修改了,重新保存,再执行命令,就没问题了!可能是从网页直接复制代码到cursor的过程中编码变了。

update:还是有问题,导出的csv后面是乱的,

后来我干脆换了个思路,直接告诉cursor,我想做啥,让它从头写代码。

结果太吃惊了,只用了三个提示词,就完美达成了效果。现在的版本还只是gpt3.5啊!

提示词:

1、利用

1
2
3
import subprocess
import csv
import time

用指定的多个dns,遍历解析指定的域名(逐个执行nslookup命令)并将结果导出csv。

2、执行过程中要有提示:比如正在使用哪个dns服务器、解析哪一个域名

3、在输出的csv文件中,增加一个列:域名列

cursor最后生成的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import subprocess
import csv
import time

dns_list = ['8.8.8.8', '8.8.4.4', '208.67.222.222', '208.67.220.220']
domain_name = 'example.com'
output_file = 'dns_results.csv'

with open(output_file, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Domain Name', 'DNS Server', 'IP Address']) # added 'Domain Name' column

for dns in dns_list:
print(f"正在使用DNS服务器: {dns}")
print(f"正在解析域名: {domain_name}")
command = f'nslookup {domain_name} {dns}'
result = subprocess.run(command, capture_output=True, text=True)
ip_address = result.stdout.split('Address: ')[-1].split('\n')[0]
writer.writerow([domain_name, dns, ip_address]) # added domain_name to the row
time.sleep(1) # to avoid overwhelming the DNS servers

执行命令:

执行解析后,自动生成的表格如图:

一个不懂编程的人,就这样完成了一个程序,代码量比网上搜到的方案还少。这个能力真的太恐怖了。

继续尝试,这个脚本还是有点小问题:1、如果解析失败,csv文件里的ip会显示为dns服务器的ip。2、如果有多个解析结果,只会显示第一个。

debug半天没有完全修复。试着用英文提问,再次重新码。又经过很久的调试,现在的解决几乎完美:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import csv
import os

dns_servers = ['1.0.0.1','8.8.8.8','119.29.29.29','1.12.12.12','233.5.5.5','9.9.9.9','208.67.222.222']
domains = ['imfine.eu.org'] # list of domains to lookup

results = [] # list to store results

for domain in domains:
for server in dns_servers:
print(f"\n等待DNS服务器:【{server}】 解析域名:【{domain}】")
response = os.popen(f'nslookup {domain} {server}').read() # run nslookup command
ip_address = response.split('addresses:')[-1].strip() # extract IP address from response
results.append([domain, server, ip_address]) # add result to list
print(f"解析结果: {ip_address}\n") # print IP address

# write results to csv file
try:
with open('dns_results.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Domain', 'DNS Server', 'IP Address'])
writer.writerows(results)
print('DNS lookup complete. Results saved to dns_results.csv')
except Exception as e:
print(f"Error occurred while writing to csv file: {e}")
raise e


之前装一个chatgpt翻译的包,提示node版本低,于是升级了最新的,还要npm一起升级了。

结果我的hexo博客主题就显示的怪怪的,最大的bug是搜索栏,整个页面的html/css渲染完全出现了问题。

一开始还以为是我修改了主题的某些设置导致的,各种控制变量法排查了半天,发现和主题没关系。

那问题出在哪了,搜索的时候发现我用的hexo主题的github页有一个 issue,就是和我一样的问题,从这里我定位到了是node-sass的版本跟不上了。

本来这里就应该很好解决了,但之前升级node导致不知道怎么环境变量除了问题,从一开始修复的过程中npm就一直报错,我废了好多功夫才明白问题出在环境变量上。现在终于全解决了。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×