Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia Pessoal,
Estou desenvolvendo um sistema que irá cadastrar os IPs da instituição. Mas não consigo pensar na melhor forma de fazer isso. O sistema já possui vários módulos, está faltando apenas esse. Vou explicar o que preciso.
A empresa possui várias filiais, cada uma recebe seu range de IPs públicos e possui seu range de IPs privados. O sistema tem um módulo chamado "IPs & Serviços". Tem um um formulário que pergunta qual é o primeiro IP do range, e o último.
Exemplo: Digamos que na filial X possui:
- IPs públicos: 200.178.115.1 ao 200.178.115.15
- IPs privados: 192.168.12.1 a 192.168.12.254 (192.168.12.0/24).
Eu quero que o sistema receba o primeiro e último IPs e gere o intervalo desses IPs para cadastrar no banco. Para o usuário não ter que fazer cadastro individual de todos os IPs. É para ser um processo automatizado. Na hora que o cara põe os 2 IPs e mandar cadastrar o banco, o sistema vai fazer vários inserts, um registro diferente para cada IP do range.
Alguma idéia?
Olá Matheus,
Muito obrigado. Só mais uma dúvida. Qual tipo de dado devo escolher para armazenamento do IP no banco? Tipo INT?
Deu certo. Obrigado. xD
>
10 minutos atrás, natanrs disse:
Deu certo. Obrigado. xD
Legal :)
>
1 hora atrás, natanrs disse:
Muito obrigado. Só mais uma dúvida. Qual tipo de dado devo escolher para armazenamento do IP no banco? Tipo INT?
Também passei por essa questão recentemente... o método mais apropriado para esse tipo de dado seria binário, por ocupar menos espaço no banco, mas isso gera mais processamento, pois você precisaria converter os dados antes e depois de usá-los.
INT não creio que seja o melhor, pois pode gerar algumas conversões indesejadas, comuns em processamento de números grandes.
Aconselho usar CHAR(15) (char, não varchar).
Olá @natanrs. Seja bem-vindo!
Para cadastrar todos os IPs do range, você pode fazer assim:
<?php
// Fonte: http://codepad.org/3QDQ2OVK
for ( $ip = ip2long( $ip1 ) ; $ip <= ip2long( $ip2 ) ; $ip++ )