2016-06-29 10 views
0

In meiner App IPv4-Adressierung als IPv6 dargestellt, wenn ich es in der Datenbank gespeichert. Ich habe sowohl die IPv4- als auch die IPv6-Zeichenfolge in der Datenbank gespeichert. Also, wie kann ich überprüfen, IP-String, den ich von der Datenbank bekomme, ist IPv4 oder IPv6. Zum Beispiel: IPv4: 192.168.98.62 dargestellt als IPv6 0x00000000000000000000FFFFC0A8623E. Ich möchte es mit Mariadb-Code überprüfen. Könntest du mir bitte helfen?Wie zu überprüfen ist ipv4, die als ipv6 dargestellt

Antwort

1

Sieht aus wie

0x00000000000000000000FFFF vor Ihrer hex ist codiert IP-Adresse.

Die folgende IP ist C0A8623E mit zwei Ziffern für jedes Netz.

Sie könnten am Anfang der Ipv6-Zeichenfolge einen Stringmatch erstellen. Beispiel:

IPString LIKE '0x00000000000000000000FFFF%' 

Dies sollte Ihnen sagen, ob es eine v6 oder v4-Adresse ist.

Hoffe, das hilft.

Mit freundlichen Grüßen,

Georg

+1

Vielen Dank für Ihre Antwort, @ Georg.Duees. Und ich fand eine andere Lösung ist Mariadb Funktion verwenden: 'IS_IPV4_MAPPED (UNHEX ('2001CDBA000000000000000032579652'))' –

+0

Nun Ihre Lösung sieht viel sauberer, weiter so –

+0

Dies ist wahrscheinlich die Art, es zu verwenden: 'IS_IPV4_MAPPED (UNHEX ('00000000000000000000FFFFC0A8623E'))) ' –

Verwandte Themen