Dependendo da frequência com que o pesquisador entra em contato com os dispositivos, pode ser o suficiente para usar o DNS dinâmico . Com o DNS dinâmico, você não precisa de um endereço IP estático, você só precisa de um nome de domínio que você controle com um provedor que suporte DNS dinâmico. Toda vez que um dispositivo (re) se conecta, ele se conecta ao provedor de DNS para declarar seu novo endereço IP. A desvantagem dessa abordagem é que leva alguns minutos para a informação do DNS se propagar, então, cada vez que os endereços IP mudarem, haverá alguns minutos durante os quais seus dispositivos estarão inacessíveis.
Se você deseja ter uma única caixa com um endereço IP estático, o que você está procurando é chamado de NAT (endereço de rede tradução) . A idéia é que quando a caixa X recebe uma conexão TCP de entrada em uma certa porta, ela consulta uma tabela para decidir a qual dispositivo encaminhar a conexão (ou para obter a conexão para si). Isso acontece no nível de pacotes IP e conexões TCP, então você não precisa de nenhum software especial no poller ou no dispositivo, você só precisa configurar o poller para usar o mesmo endereço IP, mas números de porta diferentes para cada dispositivo.
O NAT é suportado por praticamente qualquer dispositivo de dispositivo. Por exemplo, é o que os roteadores domésticos fazem para que você possa conectar vários dispositivos (computadores, telefones, etc.) à Internet, mesmo que seu provedor de serviços de Internet forneça apenas um único endereço IP. Nesse caso, o dispositivo executa NAT de origem (SNAT): o roteador modifica a origem da conexão TCP para ser ela mesma em vez do computador (e, inversamente, o destino dos pacotes na outra direção é modificado). No seu caso, você deseja o destino NAT (DNAT), que modifica o destino dos pacotes na direção cliente → servidor e a origem dos pacotes no servidor → direção do cliente. Se os dispositivos precisarem abrir conexões com outras máquinas na Internet, você poderá fazer com que a caixa X faça tanto DNAT quanto SNAT.
No Linux, você pode usar iptables
para configurar o NAT. Veja o howfil do netfilter ou qualquer um dos muitos tutoriais de NAT do Linux na web.