API tích hợp
Tài liệu API Router
API này cung cấp các điểm cuối cho nhà phát triển tương tác và mở rộng chức năng của router. Dưới đây là các điểm cuối chính cùng với ví dụ cURL, định dạng yêu cầu/phản hồi và mô tả chi tiết.
Cập nhật Proxy
Điểm cuối:
/api/update_proxy
Phương thức: POST
Mô tả: Cập nhật cấu hình proxy cho các địa chỉ IP được chỉ định.
Yêu cầu
Headers:
Content-Type: application/json
Body: Một đối tượng JSON, trong đó các khóa là địa chỉ IP và các giá trị chứa cấu hình proxy:
type
: Loại proxy (ví dụ:socks5
)server
: Địa chỉ máy chủ proxyport
: Cổng kết nốiusername
: Tên đằng nhậppassword
: Mật khẩu đăng nhập
Ví dụ:
curl --location 'http://192.168.5.1:9000/api/update_proxy' \
--header 'Content-Type: application/json' \
--data '{
"192.168.4.253": {
"type": "socks5",
"server": "179.60.183.234",
"port": 50101,
"username": "genrouter",
"password": "MDoFXVw5s8"
},
"192.168.5.104": {
"type": "socks5",
"server": "179.60.183.234",
"port": 50101,
"username": "genrouter",
"password": "MDoFXVw5s8"
}
}'
Phản hồi mẫu
{"success": true}
Lấy danh sách thiết bị
Điểm cuối: /api/devices
Phương thức: GET
Mô tả: Lấy danh sách các thiết bị đang kết nối với router cùng với các thông tin chi tiết như địa chỉ IP, MAC, tên máy (hostname), trạng thái kết nối và cấu hình proxy (nếu có). Ví dụ
curl 'http://192.168.8.1:9000/api/devices'
Phản hồi mẫu
{
"data": [
{
"ip": "192.168.8.101",
"mac": "40:c2:ba:89:c1:51",
"hostname": "akatsuki",
"connected": true
},
{
"ip": "192.168.8.102",
"mac": "",
"hostname": "",
"proxy": {
"type": "socks5",
"server": "179.60.183.234",
"port": 50101,
"username": "genrouter",
"password": "MDoFXVw5s8",
"udp": true
},
"connected": false
}
]
}
Thông tin hệ thống
Điểm cuối: /api/system/info
Phương thức: GET
Mô tả: Lấy thông tin hệ thống như phiên bản build, commit git, thời gian kiểm tra phiên bản cuối cùng, và trạng thái có cần khởi động lại hay không. Ví dụ
curl 'http://192.168.8.1:9000/api/system/info' --insecure
Phản hồi mẫu
{
"build_version": "20250401",
"current_version": "424319ff5b9e",
"git_commit": "810f2d0",
"last_version_check_time": "2025-04-01T08:14:18.39529544Z",
"need_reboot": false,
"newest_version": "424319ff5b9e",
"success": true
}
Thông tin Router
Điểm cuối: /api/router/info
Phương thức: GET
Mô tả: Lấy cấu hình của router, bao gồm các thiết lập LAN và mạng không dây. Ví dụ
curl 'http://192.168.8.1:9000/api/router/info' --insecure
Phản hồi mẫu
{
"data": {
"lan": {
"networks": [
{
"ip": "192.168.8.1",
"prefix_length": 24,
"dhcp_start": 100,
"dhcp_limit": 150,
"dhcp_lease_time": 0,
"device": "br-lan",
"ports": [
"eth0"
],
"id": "lan",
"mac": "",
"country": "",
"brand": ""
}
]
},
"wireless": {
"radios": [
{
"id": "radio0",
"band": "2g",
"mode": "speed",
"channel_id": "1",
"channels": [
{
"value": "auto",
"label": "auto"
},
{
"value": "1",
"label": "1 (2412 Mhz)"
},
{
"value": "2",
"label": "2 (2417 Mhz)"
},
{
"value": "3",
"label": "3 (2422 Mhz)"
},
{
"value": "4",
"label": "4 (2427 Mhz)"
},
{
"value": "5",
"label": "5 (2432 Mhz)"
},
{
"value": "6",
"label": "6 (2437 Mhz)"
},
{
"value": "7",
"label": "7 (2442 Mhz)"
},
{
"value": "8",
"label": "8 (2447 Mhz)"
},
{
"value": "9",
"label": "9 (2452 Mhz)"
},
{
"value": "10",
"label": "10 (2457 Mhz)"
},
{
"value": "11",
"label": "11 (2462 Mhz)"
}
],
"ssids": [
{
"id": "gr_radio0_0",
"ssid": "GenRouter H3000",
"password": "",
"mac": "",
"brand": "",
"country": "",
"hidden": "",
"disabled": "0"
}
]
},
{
"id": "radio1",
"band": "5g",
"mode": "speed",
"channel_id": "36",
"channels": [
{
"value": "auto",
"label": "auto"
},
{
"value": "36",
"label": "36 (5180 Mhz)"
},
{
"value": "40",
"label": "40 (5200 Mhz)"
},
{
"value": "44",
"label": "44 (5220 Mhz)"
},
{
"value": "48",
"label": "48 (5240 Mhz)"
},
{
"value": "52",
"label": "52 (5260 Mhz)"
},
{
"value": "56",
"label": "56 (5280 Mhz)"
},
{
"value": "60",
"label": "60 (5300 Mhz)"
},
{
"value": "64",
"label": "64 (5320 Mhz)"
},
{
"value": "100",
"label": "100 (5500 Mhz)"
},
{
"value": "104",
"label": "104 (5520 Mhz)"
},
{
"value": "108",
"label": "108 (5540 Mhz)"
},
{
"value": "112",
"label": "112 (5560 Mhz)"
},
{
"value": "116",
"label": "116 (5580 Mhz)"
},
{
"value": "120",
"label": "120 (5600 Mhz)"
},
{
"value": "124",
"label": "124 (5620 Mhz)"
},
{
"value": "128",
"label": "128 (5640 Mhz)"
},
{
"value": "132",
"label": "132 (5660 Mhz)"
},
{
"value": "136",
"label": "136 (5680 Mhz)"
},
{
"value": "140",
"label": "140 (5700 Mhz)"
},
{
"value": "144",
"label": "144 (5720 Mhz)"
},
{
"value": "149",
"label": "149 (5745 Mhz)"
},
{
"value": "153",
"label": "153 (5765 Mhz)"
},
{
"value": "157",
"label": "157 (5785 Mhz)"
},
{
"value": "161",
"label": "161 (5805 Mhz)"
}
],
"ssids": null
}
]
}
},
"success": true
}
Lấy cấu hình hệ thống
Điểm cuối: /api/system/config
Phương thức: GET
Mô tả: Lấy cấu hình hệ thống của router, bao gồm các chế độ như WebRTC và cài đặt proxy toàn cầu. Ví dụ
curl 'http://192.168.8.1:9000/api/system/config' \
--insecure
Phản hồi mẫu
{
"data": {
"webrtcMode": 1,
"globalProxyMode": 0,
"globalProxy": null
},
"success": true
}
Kiểm tra kết nối mạng
Điểm cuối: /api/system/network
Phương thức: GET
Mô tả: Kiểm tra kết nối mạng của router. Phản hồi với
"success": true
cho biết router đang kết nối với mạng.
Ví dụ
curl 'http://192.168.8.1:9000/api/system/network' \
--insecure
Phản hồi mẫu
{"success": true}
Kiểm tra cập nhật hệ thống
Điểm cuối: /api/system/check_for_update
Phương thức: GET
Mô tả: Kiểm tra xem có bản cập nhật hệ thống mới hay không và cung cấp các thông tin chi tiết như phiên bản build, commit git, ID bản cập nhật, và nhật ký thay đổi (changelog).
curl http://192.168.8.1:9000/api/system/check_for_update
Phản hồi mẫu
{
"data": {
"build_version": "20250401",
"git_commit": "810f2d0",
"update_id": "424319ff5b9e",
"changelog": ""
},
"success": true
}
Tạo mạng wiffi
Điểm cuối /api/router/create_wifi
Phương thức: POST
Mô tả: Tạo hoặc cấu hình mạng WiFi trên router. Dữ liệu gửi kèm yêu cầu bao gồm thông tin về sóng radio và các SSID sẽ được cấu hình.
Yêu cầu
Body: Một đối tượng JSON với khóa
data
chứa một mảng các đối tượng cấu hình. Mỗi đối tượng bao gồm:id
: ID sóng radio (ví dụ:radio0
)ssids
: Một mảng các đối tượng cấu hình SSID, mỗi đối tượng bao gồm:ssid
: Tên mạng WiFipassword
: Mật khẩu (có thể để null nếu không sử dụng)hidden
: Giá trị boolean cho biết SSID có bị ẩn hay khôngdisabled
: Giá trị boolean cho biết SSID có bị vô hiệu hóa hay khôngmac
,brand
: Các trường bổ sung nếu có
Ví dụ
curl 'http://192.168.8.1:9000/api/router/create_wifi' \
--data-raw '{"data":[{"id":"radio0","ssids":[{"ssid":"GenRouter H3000","password":null,"hidden":false,"disabled":false,"mac":"","brand":""},{"ssid":"Cahaahaah","password":"aassasas","hidden":true,"disabled":false,"mac":"","brand":"viettel"}]}]}' \
--insecure
Phản hồi mẫu
{"success": true}
Lưu ý chung
Các điểm cuối liên quan đến hệ thống và router (ví dụ: /api/system/info, /api/router/info, /api/system/config, /api/system/network, /api/system/check_for_update, /api/router/create_wifi) có thể cần sử dụng tùy chọn
--insecure
với cURL nếu hệ thống đang sử dụng chứng chỉ SSL không hợp lệ.Các ví dụ được cung cấp có thể điều chỉnh dựa trên môi trường cụ thể của bạn (địa chỉ IP, cổng, thông tin xác thực, v.v.).
Last updated