====== AirOS ======
===== SNMP =====
snmpwalk -c lessinianet.snmp -v 1 10.210.12.249 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
IF-MIB::ifDescr.4 = STRING: wifi0
IF-MIB::ifDescr.5 = STRING: ath0
IF-MIB::ifDescr.6 = STRING: eth0.10
IF-MIB::ifDescr.7 = STRING: br0
snmpget -c lessinianet.snmp -v 1 10.210.12.249 IF-MIB::ifPhysAddress.4
IF-MIB::ifPhysAddress.4 = STRING: 4:18:d6:ec:98:ac
Cercando dalla prima query i "wifi*" e sostituendo l'indice corrispondente (nell'esempio 4) nella seconda query si ottiene il mac. Ovviamente da fare usande le librerie SNMP PHP
===== http API =====
= 8.5.0+ OR get cookie with session ID for AirOS < 8.5.0
curl_setopt ($ch, CURLOPT_URL, "$schema://$address/api/auth");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, Array ('username' => $username, 'password' => $password));
curl_setopt ($ch, CURLOPT_HEADER, 1);
$response = curl_exec ($ch);
// uncomment to see raw response
//print "resp: $response\n";
curl_setopt ($ch, CURLOPT_HEADER, 0);
// AirOS >= 8.5.0 request and return file
if (curl_getinfo ($ch, CURLINFO_HTTP_CODE) == 200)
{
// Get X-CSRF-ID value
preg_match ('/X-CSRF-ID: .*/', substr ($response, 0, curl_getinfo ($ch, CURLINFO_HEADER_SIZE)), $XCSRFID);
curl_setopt ($ch, CURLOPT_URL, "$schema://$address/$file");
curl_setopt ($ch, CURLOPT_POST, 0);
$retfile = curl_exec ($ch);
curl_setopt ($ch, CURLOPT_URL, "$schema://$address/logout.cgi");
curl_setopt ($ch, CURLOPT_HTTPHEADER, Array (trim ($XCSRFID[0]), 'X-AIROS-LUA: 1'));
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, Array());
curl_exec ($ch);
}
// Login failed, try AirOS < 8.5.0 login, request, and return file
else
{
curl_setopt ($ch, CURLOPT_URL, "$schema://$address/login.cgi");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, Array ('username' => $username, 'password' => $password));
curl_exec ($ch);
curl_setopt ($ch, CURLOPT_URL, "$schema://$address/$file");
curl_setopt ($ch, CURLOPT_POST, 0);
$retfile = curl_exec ($ch);
}
curl_close ($ch);
return $retfile;
}
?>
{
"chain_names": [
{
"number": 1,
"name": "Chain 0"
},
{
"number": 2,
"name": "Chain 1"
}
],
"host": {
"hostname": "cpe-188192-gal-lab",
"uptime": 667685,
"time": "2018-01-26 08:29:59",
"timestamp": 828344250,
"fwversion": "v8.5.0-cs.36727.180118.1402",
"devmodel": "Rocket Prism 5AC Gen2",
"netrole": "bridge",
"loadavg": 0.129883,
"totalram": 129982464,
"freeram": 89100288,
"temperature": 50,
"cpuload": 39.603962
},
"genuine": "/images/genuine.png",
"services": {
"dhcpc": false,
"dhcpd": false,
"dhcp6d_stateful": false,
"pppoe": false,
"airview": 2
},
"firewall": {
"iptables": false,
"ebtables": false,
"ip6tables": false,
"eb6tables": false
},
"portfw": false,
"wireless": {
"essid": "lessinianet.net",
"mode": "sta-ptmp",
"compat_11n": 0,
"hide_essid": 0,
"apmac": "80:2A:A8:A4:2F:9D",
"frequency": 5655,
"center1_freq": 5655,
"dfs": 1,
"distance": 14850,
"security": "WPA2",
"noisef": -90,
"txpower": 22,
"aprepeater": false,
"rstatus": 5,
"chanbw": 20,
"rx_chainmask": 3,
"tx_chainmask": 3,
"cac_state": 0,
"rx_idx": 4,
"rx_nss": 2,
"tx_idx": 6,
"tx_nss": 2,
"count": 1,
"polling": {
"dcap": 57720,
"ucap": 95680,
"use": 2,
"tx_use": 1,
"rx_use": 1,
"atpc_status": 0,
"fixed_frame": false,
"gps_sync": false
},
"sta": [
{
"mac": "80:2A:A8:A4:2F:9D",
"lastip": "0.0.0.0",
"signal": -66,
"rssi": 30,
"noisefloor": -90,
"chainrssi": [
28,
26,
0
],
"tx_idx": 6,
"rx_idx": 4,
"tx_nss": 2,
"rx_nss": 2,
"tx_latency": 0,
"distance": 14850,
"tx_packets": 0,
"tx_lretries": 0,
"tx_sretries": 0,
"uptime": 157916,
"tx_ratedata": [
3,
0,
0,
176,
14327,
102196,
156745,
178340,
0,
0
],
"stats": {
"rx_bytes": 83701813,
"rx_packets": 588950,
"rx_pps": 11,
"tx_bytes": 98347739,
"tx_packets": 292160,
"tx_pps": 0
},
"remote": {
"hostname": "santuario-SudOvest",
"platform": "Rocket 5AC Prism",
"version": "XC.qca955x.v8.5.11.39842.190109.1449",
"uptime": 240246,
"time": "2019-01-12 10:33:00",
"cpuload": 7,
"temperature": 51,
"totalram": 129961984,
"freeram": 81661952,
"netrole": "bridge",
"mode": "ap-ptmp",
"compat_11n": 1,
"signal": -64,
"rssi": 32,
"noisefloor": -87,
"tx_power": 22,
"distance": 14850,
"rx_chainmask": 3,
"chainrssi": [
30,
28,
0
],
"tx_ratedata": [
2,
5,
220,
3920,
294380,
0,
0,
0,
0,
0
],
"tx_bytes": 139113407571,
"rx_bytes": 9806798900,
"ethlist": [
{
"ifname": "eth0",
"enabled": true,
"plugged": true,
"duplex": true,
"speed": 1000,
"snr": [
30,
30,
30,
30
],
"cable_len": 14
}
],
"ipaddr": [
"10.210.48.248",
"169.254.47.157"
],
"gps": {
"lat": "45.545359",
"lon": "10.878980",
"fix": 1,
"sats": 8,
"dim": 3,
"dop": "1.30",
"alt": "341.6"
},
"oob": "false"
},
"airmax": {
"actual_priority": 2,
"beam": 0,
"desired_priority": 2,
"downlink_capacity": 57720,
"uplink_capacity": 95680,
"atpc_status": 0,
"rx": {
"usage": 1,
"cinr": 26,
"evm": [
[
25,
25,
25,
26,
26,
26,
26,
26,
26,
26,
27,
28,
28,
28,
28,
28,
26,
26,
26,
26,
26,
26,
26,
26,
26,
26,
26,
26,
26,
25,
25,
25,
25,
25,
28,
28,
28,
25,
25,
25,
25,
24,
24,
24,
24,
24,
27,
27,
27,
27,
24,
24,
22,
22,
26,
26,
26,
26,
25,
25,
25,
25,
25,
25
],
[
30,
30,
30,
31,
31,
31,
31,
31,
31,
30,
31,
30,
30,
30,
30,
30,
28,
28,
28,
28,
28,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
30,
30,
30,
30,
30,
30,
30,
30,
30,
30,
30,
30,
30,
30,
30,
29,
29,
31,
31,
31,
31,
29,
29,
29,
29,
29,
29
]
]
},
"tx": {
"usage": 1,
"cinr": 26,
"evm": [
[
24,
24,
24,
24,
24,
24,
24,
24,
24,
24,
26,
26,
26,
27,
27,
27,
27,
25,
27,
25,
26,
26,
26,
26,
25,
24,
24,
24,
24,
24,
24,
24,
24,
28,
28,
28,
28,
28,
28,
28,
28,
25,
25,
25,
25,
25,
25,
25,
25,
27,
27,
27,
27,
27,
27,
27,
27,
27,
27,
26,
26,
25,
27,
27
],
[
30,
30,
30,
30,
30,
30,
30,
30,
30,
30,
32,
32,
32,
33,
33,
33,
33,
31,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
33,
33,
33,
33,
33,
33,
33,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32,
32
]
]
}
}
}
]
},
"interfaces": [
{
"ifname": "eth0",
"hwaddr": "78:8A:20:AD:E4:4C",
"enabled": true,
"mtu": 1500,
"status": {
"plugged": true,
"tx_bytes": 126448927,
"rx_bytes": 32773228,
"tx_errors": 0,
"rx_errors": 0,
"ipaddr": "0.0.0.0",
"speed": 1000,
"duplex": true,
"snr": [
29,
28,
29,
29
],
"cable_len": 38
}
},
{
"ifname": "ath0",
"hwaddr": "78:8A:20:AC:E4:4C",
"enabled": true,
"mtu": 1500,
"status": {
"plugged": false,
"tx_bytes": 394212716,
"rx_bytes": 361312482,
"tx_errors": 0,
"rx_errors": 0,
"ipaddr": "0.0.0.0",
"speed": 0,
"duplex": false
}
},
{
"ifname": "br0",
"hwaddr": "78:8A:20:AC:E4:4C",
"enabled": true,
"mtu": 1500,
"status": {
"plugged": true,
"tx_bytes": 312537683,
"rx_bytes": 249947706,
"tx_errors": 0,
"rx_errors": 0,
"ipaddr": "10.210.48.2",
"speed": 0,
"duplex": false
}
}
],
"provmode": {},
"ntpclient": {},
"unms": {
"status": 1,
"timestamp": "2018-01-26T08:29:57+0100"
}
}
risposta CPE
{ "host": {
"uptime": 5104088,
"time": "2017-02-16 18:53:02",
"fwversion": "v6.0",
"fwprefix": "XW",
"hostname": "cpe-240187",
"devmodel": "PowerBeam M5 300",
"netrole": "router",
"totalram": 63623168,
"freeram": 39596032,
"cputotal": 510331084,
"cpubusy": 3895687
},
"wireless": {
"mode": "sta",
"essid": "lessinianet.net",
"hide_essid": 0,
"apmac": "04:18:D6:EC:98:AC",
"countrycode": 380,
"channel": 40,
"frequency": "5200 MHz",
"dfs": "0",
"opmode": "11NAHT20",
"antenna": "300 - 22 dBi",
"chains": "2X2",
"signal": -70, "rssi": 26, "noisef": -96,
"txpower": 22,
"ack": 37,
"distance": 1950,
"ccq": 991,
"txrate": "39", "rxrate": "117",
"security": "WPA2", "qos": "No QoS",
"rstatus": 5,
"count": 1, "cac_nol": 0, "nol_chans": 0,
"polling": {
"enabled": 0, "quality": 0, "capacity": 0, "priority": 0, "noack": 0,
"airsync_mode": 0, "airsync_connections": 0,
"airsync_down_util" : 0, "airsync_up_util" : 0,
"airselect" : 0, "airselect_interval" : 0
},
"stats": { "rx_nwids": 0,
"rx_crypts": 0,
"rx_frags": 0,
"tx_retries": 0,
"missed_beacons": 0,
"err_other": 0
},
"wds": 0,
"aprepeater": 0,
"chwidth": 20,
"chanbw": 20,
"cwmmode": 0,
"rx_chainmask": 3,
"tx_chainmask": 3,
"chainrssi" : [ 20, 25, 0 ],
"chainrssimgmt" : [ 21, 25, 0 ],
"chainrssiext" : [ 20, 25, 0 ]
},
"airview": { "enabled": 0 },
"services": { "dhcpc": 0, "dhcpd": 1, "pppoe": 1 },
"firewall": { "iptables": 0, "ebtables" : 0, "ip6tables": 0, "eb6tables" : 0 },
"genuine": "/images/genuine.png",
"interfaces" : [
{
"ifname" : "lo",
"hwaddr": "00:00:00:00:00:00",
"enabled" : true,
"status" : { "plugged": 1, "speed": 0, "duplex": 255 },
"services" : { "dhcpc": false, "dhcpd": false, "pppoe": false }
},
{
"ifname" : "eth0",
"hwaddr": "80:2A:A8:6F:67:A9",
"enabled" : true,
"status" : { "plugged": 1, "speed": 100, "duplex": 1 },
"services" : { "dhcpc": false, "dhcpd": false, "pppoe": false }
},
{
"ifname" : "wifi0",
"hwaddr": "80:2A:A8:6E:67:A9",
"enabled" : true,
"status" : { "plugged": 1, "speed": 0, "duplex": 255 },
"services" : { "dhcpc": false, "dhcpd": false, "pppoe": false }
},
{
"ifname" : "ath0",
"hwaddr": "80:2A:A8:6E:67:A9",
"enabled" : true,
"status" : { "plugged": 1, "speed": 0, "duplex": 255 },
"services" : { "dhcpc": false, "dhcpd": false, "pppoe": true }
},
{
"ifname" : "br0",
"hwaddr": "80:2A:A8:6F:67:A9",
"enabled" : true,
"status" : { "plugged": 1, "speed": 0, "duplex": 255 },
"services" : { "dhcpc": false, "dhcpd": true, "pppoe": false }
},
{
"ifname" : "ppp0",
"hwaddr": "00:00:00:00:00:00",
"enabled" : true,
"status" : { "plugged": 1, "speed": 0, "duplex": 255 },
"services" : { "dhcpc": false, "dhcpd": false, "pppoe": false }
}
]
}