2016-06-29 2 views
0

Dans mon application, l'adressage IPv4 représenté comme IPv6 lorsque je l'ai stocké dans la base de données. J'ai stocké les chaînes IPv4 et IPv6 dans la base de données. Alors, comment puis-je vérifier la chaîne IP que je reçois de la base de données est IPv4 ou IPv6. Par exemple: IPv4: 192.168.98.62 représenté comme IPv6 0x00000000000000000000FFFFC0A8623E. Je veux vérifier par le code Mariadb. Pourriez-vous s'il vous plaît m'aider?Comment vérifier est ipv4 qui s'est présenté comme ipv6

Répondre

1

On dirait

0x00000000000000000000FFFF est avant hex codé IP-Adresse.

L'adresse IP suivante est C0A8623E avec deux chiffres pour chaque réseau.

Vous pouvez créer un stringmatch au début de la chaîne Ipv6. Exemple:

IPString LIKE '0x00000000000000000000FFFF%' 

Cela devrait vous dire si c'est un v6 ou l'adresse v4.

Espérons que cela aide.

Meilleures salutations,

Georg

+1

Merci pour votre réponse, @ Georg.Duees. Et j'ai trouvé une autre solution est l'utilisation de la fonction mariadb: 'IS_IPV4_MAPPED (UNHEX ('2001CDBA000000000000000032579652'))' –

+0

Eh bien votre solution semble beaucoup plus propre, continuez –

+0

C'est probablement la façon de l'utiliser: 'IS_IPV4_MAPPED (UNHEX ('00000000000000000000FFFFC0A8623E')) ' –