Au minimum, vous devez être comparer les bits supérieurs N contre les blocs réseau connus-privé ou connu inutilisé. Et le minimum de c'est le RFC 1918 private networks:
10/8
172.16/12
192.168/16
(Cette notation signifie que si vous masquez les 8 bits supérieurs et obtenir « 10 », il est dans le premier bloc privé. 12 bits == 172,16 est le deuxième, etc.)
Il y a beaucoup plus de blocs que vous pouvez détecter. L'exemple le plus simple est 127/8, tous loopback addresses. Vous savez probablement sur 127.0.0.1, mais en fait toutes les adresses 127.x.y.z se réfèrent à l'interface de bouclage sur votre machine.
Un exemple plus obscur est 5/8, qui a été assigné mais jamais utilisé sur Internet large, donc il a été approprié par Hamachi. Cependant, vous voudrez faire attention à ce test si votre programme peut être exécuté sur une machine ayant accès au réseau Hamachi.
Un autre ensemble d'adresses que vous voudrez probablement ignorer est les différentes gammes multicast. Vous devriez seulement envoyer des paquets UDP à ces connexions, jamais des connexions TCP. Si vous voulez être vraiment agressif, vous pouvez vous tenir au courant des dernières affectations publiées par IANA, en ignorant les adresses IP des blocs qui n'ont pas encore été attribués. Cependant, vous voudriez garder cette liste fréquemment à jour.