Conversão de IP em representação numérica (e vice-versa) no MySQL
Para quem costuma utilizar os serviços de monitoramento online de IPs, tipo SNDS da Microsoft, ou SenderScore, é bom saber que muitas vezes, ao consultar um IP, a URL da página exibe uma info que você pode não reconhecer.
Por exemplo: https://postmaster.live.com/snds/dataIP.aspx?ip=3141348145
Veja que o parâmetro (a representação numérica) representa um IP. E como faz-se para saber que IP é este ?
No MySQL, faça:
SELECT inet_ntoa(3141348145);
Veja o resultado da query:
mysql> SELECT inet_ntoa(3141348145);
+———————–+
| inet_ntoa(3141348145) |
+———————–+
| 187.61.43.49 |
+———————–+
1 row in set (0.02 sec)
O IP é 187.61.43.49.
Para fazer o contrário, também é possível:
mysql> SELECT inet_aton(’187.61.43.49′);
+—————————+
| inet_aton(’187.61.43.49′) |
+—————————+
| 3141348145 |
+—————————+
1 row in set (0.01 sec)
Para o IP é necessário encapsulá-lo com aspas.
Caso precise consultar muitos IPs simultaneamente, você pode gerar as URLs, com o uso do CONCAT, ainda no MySQL.
Veja:
mysql> SELECT CONCAT(“http://url_a_ser_concatenada?”,mtaIPs_ip) FROM mtaPoolsIPs LIMIT 5;
+—————————————————+
| CONCAT(“http://url_a_ser_concatenada?”,mtaIPs_ip) |
+—————————————————+
| http://url_a_ser_concatenada?187.61.28.10 |
| http://url_a_ser_concatenada?187.61.28.100 |
| http://url_a_ser_concatenada?187.61.28.101 |
| http://url_a_ser_concatenada?187.61.28.102 |
| http://url_a_ser_concatenada?187.61.28.103 |
+—————————————————+
5 rows in set (0.01 sec)
De modos que sua tarefa diária de consulta de IPs se torna muito mais automatizada que fazer tudo à mão…