Est-il possible de déterminer si un ordinateur Windows exécute IPV6 à l'aide d'utilitaires natifs, python ou php?Comment détecter si une machine Windows exécute IPV4 ou IPV6?
Répondre
Voici comment j'ai résolu le problème, en essayant d'ouvrir un socket IPv6. Si le système n'a pas généré d'erreur, il utilise IPv6.
import socket
def isIPV6():
ipv6 = True
try:
s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
except:
ipv6 = False
return ipv6
Chaque ordinateur est livré avec IPv4 en standard. IPv6 est uniquement activé sur des machines spécifiques. Mais si vous analysez ifconfig/ipconfig alors vous devriez vous trouver une adresse IPv4/6 dans la sortie
Incorrect, IPv6 est généralement activé par défaut et sera utilisé de préférence si un ordinateur peut obtenir une adresse IPv6 routable. – StanTastic
@StanTastic Cette réponse a 6 ans quand les choses étaient très différentes –
Bien sûr. Si ipconfig
contient une entrée IPv6 Address
pour une interface réelle, vous avez probablement la connectivité IPv6. Il y a aussi des entrées de registre utiles à HKLM\SYSTEM\CurrentControlSet\services\TCPIP6
.
L'approche de Jakob est la plus simple; vous pouvez diriger le résultat et faire une correspondance pour voir si une carte réseau a une adresse IPv6 valide.
En outre, vous pouvez obtenir cela en récupérant la classe Windows Management Instrumentation Win32_NetworkAdapterConfiguration. La propriété IPAddress
est un tableau de toutes les adresses IP associées à une carte réseau et vous pouvez les comparer pour voir si une adresse IPv6
est associée. Mais PS est un peu exagéré, j'irais avec la réponse de Jakob ou Wyatt à moins que vous ayez besoin de faire quelque chose de plus intelligible et sophistiqué (envoyer une requête HTTP, changer certaines règles réseau, redémarrer un service).
Énumérer les interfaces et vérifier une adresse IPv6, comme tout le monde l'a indiqué. Les alternatives incluent essayer d'ouvrir une socket IPv6 ou obtenir Python pour appeler WSCEnumProtocols()
Essayer d'ouvrir une socket IPV6 fait l'affaire, jetez un oeil à ma réponse pour le code. – CLJ
- 1. Comment convertir une adresse IPv4 en IPv6
- 2. Détecter si IPv6 est activé sur les machines Windows
- 3. Comment vérifier si quelqu'un est connecté via IPv6/IPv4
- 4. Utilisez UdpClient avec IPv4 et IPv6?
- 5. Module IPv6 vers ipv4 pour omnet ++
- 6. Comment stocker à la fois IPv4 ou IPv6 dans une seule colonne dans SQL Server?
- 7. Indique si une chaîne de texte est une adresse IPv6 ou une adresse IPv4 utilisant des sockets C standard API
- 8. Détecter si l'iPhone exécute une version Debug/Distribution à l'exécution
- 9. Comment détecter si un utilisateur exécute IE 6?
- 10. Pourquoi request.getRemoteAddr() renvoie ipv4 ou ipv6 en fonction du contexte (post-requête ou requête ajax)
- 11. IPv4 et IPv6 dans un segment de réseau unique
- 12. Comment détecter si un ordinateur distant exécute RDP?
- 13. Comment puis-je détecter si mon processus exécute UAC-élevé ou non?
- 14. Comment détecter une nouvelle machine comme Facebook?
- 15. Détecter si une machine Windows a un analyseur de virus en cours d'exécution?
- 16. Comment détecter si j'utilise MATLAB ou Octave?
- 17. Java: URL.openStream() - utilise IPv4
- 18. Détecter si Windows s'exécute depuis Parallels?
- 19. Comment détecter si une table existe (sans classe ou ID)
- 20. Ressources pour débuter avec les bases IPv4/IPv6 et le développement
- 21. Comment détecter si Windows dirige le trafic sur LAN ou sur WiFi en C#
- 22. Obtenir toutes les adresses IPv6 sur toutes les interfaces (Windows)
- 23. Comment détecter si une table existe? MySql
- 24. .Net IPAddress IPv4
- 25. détecter si une classe OCX est enregistrée dans Windows
- 26. Comment détecter si mon programme fonctionne sous Windows?
- 27. Comment puis-je détecter si Windows Installer est installé?
- 28. Hudson - Windows exécute la commande de lot Windows
- 29. comment détecter la machine a DOTNET 2.0
- 30. GetHostEntry.AddressList [0] renvoie :: 1 sur la version Windows actuelle même si IPv6 est désactivé. Puis-je changer cela?
Toute machine moderne possède les deux. –
Hans a absolument raison. Vous impliquez xor, mais en réalité, c'est inclusif ou. –
"Exécution" est différent de "A la connectivité en utilisant ...". Je préfère utiliser une sorte de sonde IPv6 (à l'adresse IPv6 de Google, peut-être?). Un certain nombre de machines configureront l'adresse IPv6, mais l'infrastructure réseau sous-jacente ne permettra pas à IPv6 d'aller n'importe où (pensez: votre équipement domestique prend en charge IPv6, mais pas les équipements ISP). – StanTastic