[英]Getting the ip address of a device in a network
从主题本身,我如何通过其IP地址检测设备。 当我检测到它时,设备将向服务器发送响应,表明它现在已连接,就像检测到新设备一样,但该设备未连接到linux计算机。 在这里,我有一张照片。
当设备现在连接时,我可以通过它的IP地址向它发送数据,以便我可以控制它。.该设备将由电动机,Linux为其发送命令的LED灯组成。 诸如..电动机的上,下,左,右命令以及led灯的开/关命令。
我如何在C语言中执行此操作?
当您的设备回话时,您将获得一个IP地址。 我认为您的检测机制就像在UDP上广播一样。 如果使用的是Berkeley套接字,则将使用以下两个功能之一:
int accept(int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen); // TCP method of receiving connection
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); // UDP method of receiving data
其中, cliaddr
和src_addr
分别为您提供发送数据包的计算机的IP。 例如,在Linux上,IPv4的sockaddr结构为:
/* Internet address. */
struct in_addr {
__be32 s_addr;
};
struct sockaddr_in {
__kernel_sa_family_t sin_family; /* Address family */
__be16 sin_port; /* Port number */
struct in_addr sin_addr; /* Internet address */
/* Pad to size of `struct sockaddr'. */
unsigned char __pad[__SOCK_SIZE__ - sizeof(short int) -
sizeof(unsigned short int) - sizeof(struct in_addr)];
};
有很多方法可以获取有关远程设备的数据。
套接字编程是连接到远程系统并获取有关其数据的通用方法。
对于协议SNMP,请使用以下库在编程中使用它。
对于nmap工具,您可以使用以下链接
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.