发表于: 2025-05-26 20:27:56
0 49
今天完成的任务:学习深度思考。
4.“内网IP+端口”和“外网IP+端口”和"域名"三种方式方式的差别是什么?什么时候用内网?什么时候用外网IP,什么时候用域名访问?
参考文献:https://blog.csdn.net/u011041241/article/details/109574509
首先解释一下“内网”与“外网”的概念:
内网:即所说的局域网,比如学校的局域网,局域网内每台计算机的IP地址在本局域网内具有互异性,是不可重复的。但两个局域网内的内网IP可以有相同的。
外网:即互联网,局域网通过一台服务器或是一个路由器对外连接的网络,这个IP地址是惟一的。也就是说内网里所有的计算机都是连接到这一个外网IP上,通过这一个外网IP对外进行交换数据的。也就是说,一个局域网里所有电脑的内网IP是互不相同的,但共用一个外网IP。
在局域网中,每台电脑都可以自己分配自己的IP,这个IP只在局域网中有效。而如果你将电脑连接到互联网,你的网络提供商(ISP)的服务器会为你分配一个IP地址,这个IP地址才是你在外网的IP。两个IP同时存在,一个对内,一个对外。
当你家里买了两台电脑,你想组建一个局域网,你除了要用网线和路由器等设备将两台电脑相连,你还要将两台电脑设置固定IP,比如电脑A设为192.168.1.2,电脑B设为192.168.1.3,这样你就可以用这两个IP地址互相访问两台电脑,但这两个IP地址只在这两台电脑间有效,对外网无效。所以局域网中分配的IP与广域网中的IP完全没有对应关系。
你在内网的机子在上网时,都是在向网关发出请求,再由网关(一般为路由器)用外网IP转到INT网上,接受数据后,再分发到你的内网IP上。
收获:看到这篇文章,对基础的概念解读的非常详细。
5.内网IP和外网IP的区别是什么,在服务器上测试接口是否被防火墙屏蔽的时候,该用内网IP检测,还是该用外网IP检测?
遇到的问题:小课堂中没有数据,在博客中也不太好找,找的文章也和上一个问题一样。
6.在Linux服务器上,有哪些工具是可以测试接口的,怎么用Wget或者是Curl分别发送Rest的四种请求?
参考文献:https://blog.csdn.net/weixin_44285715/article/details/111163422
Windows/mac环境上有很多接口测试的工具,如soapui、postman等,但这些工具在linux平台上使用起来相对不那么便捷。有时候当我们要测试一些外部接口时,当本地无权调用测试路径时,需要将测试建立在linux平台,除了封装简单的请求代码进行实现外,可通过curl实现
1、测试get请求
$ curl http://www.linuxidc.com/login.cgi?user=test001&password=123456
AI写代码
2、测试post请求
$ curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi
AI写代码
3、在命令行直接发送JSON结构数据
curl -H 'content-type: application/json' -X POST -d '{"accountType":"4"}' http://192.168.129.xx/AntiRushServer/api/ActivityAntiRush
AI写代码
curl -XPOST -H'Content-Type: application/json' http://0.0.0.0:15663/15663abc/extract_data -d@extrator.json
# extrator.json文件名
AI写代码
响应消息:
{"code":"4000","message":"参数错误:time的值不是UInt"}
第二种方式:使用 Python脚本完成post接口测试脚本。
import requests
new_url="http://10.31.143.2:8989/system/systemOrgan/list"
params = {"access_token": "807ad226-cbcc-4620-9544-8f53e1d51405"}
payload = {
"organId":1,
"pageNumber":1,
"pageSize":10,
"sortBy":"lastUpdateTime",
"sort":"DESC"}
results = requests.post(new_url, params=params, json=payload).status_code
print(results)
body中带json数据的:
def auto_post(text):
url = "http://xxx/address"
# url = ''.join([host, endpoint])
body = \
{
"address": text
}
r = requests.post(url=url, data=json.dumps(body))
result = r.json()
# print(result)
requests.post(
url="",
headers="",
cookies="",
data={
},
params={"k1": "v1", "k2": "v2"},
# url中传递的参数,效果如下
# http://www.baidu.com?k1=v1&k2=v2
)
# 我们可以通过data传递请求体,也可以通过json传递请求体
data = {
"username":"admin",
"pwd":"admin"
},
# 则请求体中的数据为username=admin&pwd=admin
# 参数json
json = {
"username":"admin",
"pwd":"admin"
},
# 则请求体中的数据为{"username":"admin","pwd":"admin"}
明天的计划:继续学习深度思考。
评论