0
我的套接字的想法是接收和發送SNMP數據包 - GetRequest/GetResponse
。但是,套接字已經接收到SNMP數據包如何通過UDP發送SNMP數據包
...
unsigned char buf[8192];
...
for (;;) {
// Receive snmp message from snmp manager
recv_len = recvfrom(my_socket, buf, BUFSIZE, 0, (struct sockaddr
*)&remote_addr, &addr_len);
...
現在我想通過一個表示爲字符串的SNMP-Packet來回答請求。注意:響應包含GetResponse-PDU
(a2
)。
unsigned char * packet = "302902010004067075626c6963a21c...";
int r = sendto(my_socket, packet, strlen(packet), 0, (struct sockaddr *)&remote_addr, addr_len);
返回值或r
是4
,絕對是錯誤的,因爲我的迴應SNMP包packet
是大於4,爲什麼,因爲它是一個指針?
此外,響應SNMP-Packet packet
不作爲SNMP-Packet發送,它與packet
相比看起來不同,並且不會被解釋爲Wireshark中的SNMP-Packet。它看起來像:
我怎麼能發送一個有效的SNMP的包?
如果你在Linux上工作,你可以使用'libsnmp-dev'的一個SNMP庫。您可以使用該庫的API創建SNMP數據包。 但您需要了解如何使用它。 – Gaurav
是的,我在Linux上工作,感謝提示。 – Sam
@GauravPathak你知道我在哪裏可以找到libsnmp-dev的源代碼或文檔嗎? – Sam