发表于: 2025-05-26 20:27:56

0 48


今天完成的任务:学习深度思考。

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"}

明天的计划:继续学习深度思考。



返回列表 返回列表
评论

    分享到