<prompt> Kwa kuzingatia mfuatano queryIP, rudisha IPv4 ikiwa IP ni anwani halali ya IPv4, IPv6 ikiwa IP ni anwani halali ya IPv6 au Wala ikiwa IP si IP sahihi ya aina yoyote.Anwani halali ya IPv4 ni IP katika mfumo wa x1.x2.x3.x4 ambapo 0 xi 255 na xi haiwezi kuwa na sufuri zinazoongoza. Kwa mfano, 192.168.1.1 na 192.168.1.0 ni anwani halali za IPv4 huku 192.168.01.1 , 192.168.1.00 , na 192.168.1.1 4 ni batili IP. anwani.Anwani halali ya IPv6 ni IP katika mfumo wa x1:x2:x3:x4:x5:x6:x7:x8 ambapo: 1 xi.urefu 4 xi ni mfuatano wa hexadesimoli ambao unaweza kuwa na tarakimu, herufi ndogo za Kiingereza a hadi f na herufi kubwa za Kiingereza A hadi F . Sufuri zinazoongoza zinaruhusiwa katika xi.Kwa mfano, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 na 2001:db8:85a3:0:0:8A2E:0370:7334 ni anwani halali za IPv6, huku 2001:0db8:85a3::8A2E:037j:7334 na 02001:0db8:85a3:0000:0000:8a2e:0370:7334 ni batili anwani za IPv6.Mfano wa 1:Ingizo: queryIP 172.16.254.1 Pato: IPv4Maelezo: Hii ni anwani halali ya IPv4, rudisha IPv4.Mfano wa 2:Ingizo: queryIP 2001:0db8:85a3:0:0:8A2E:0370:7334 Pato: IPv6Maelezo: Hii ni anwani halali ya IPv6, rudisha IPv6.Mfano wa 3:Ingizo: queryIP 256.256.256.256Pato: WalaMaelezo: Hii si anwani ya IPv4 wala IPv6.Vikwazo: queryIP inajumuisha herufi za Kiingereza, tarakimu na herufi . na : pekee.  <response>: chatudef validateIPqueryIP: ipv4_parts queryIP.split. ipv6_parts queryIP.split: ikiwa lenipv4_parts 4: ikiwa ni_valid_ipv4sehemu_ya_ipv4: kurudi IPv4 elif lenipv6_parts 8: ikiwa ni_valid_ipv6sehemu_ya_ipv6: kurudi IPv6 kurudi Waladef is_valid_ipv4sehemu: kwa sehemu katika sehemu: ikiwa si sehemu au lensehemu 3 au lensehemu 1 na sehemu0 0: kurudi Uongo ikiwa sio part.isdigit au intpart 0 au intpart 255: kurudi Uongo kurudi Kwelidef is_valid_ipv6sehemu: kwa sehemu katika sehemu: ikiwa sio sehemu au lensehemu 4: kurudi Uongo kwa ch kwa sehemu: ikiwa sio ch.isdigit na sio ch.lower a na ch.lower f: kurudi Uongo kurudi KwelimaelezoKanuni hukagua ikiwa queryIP iliyotolewa ni IPv4 au IPv6, kisha inaendelea kama ifuatavyo:1. Kwa IPv4, tunagawanya ingizo kwa nukta . na uthibitishe ikiwa kuna sehemu 4 haswa. Kila sehemu inapaswa kuwa kamba yenye urefu kati ya 1 na 3, na haipaswi kuwa na sufuri zinazoongoza. Kisha tunaangalia ikiwa kila herufi ya sehemu ni tarakimu na kama thamani kamili ya sehemu hiyo ni kati ya 0 na 255 pamoja.2. Kwa IPv6, tunagawanya ingizo kwa koloni : na kuthibitisha ikiwa kuna sehemu 8 haswa. Kila sehemu inapaswa kuwa kamba yenye urefu kati ya 1 na 4. Kisha tunaangalia ikiwa kila herufi ya sehemu hiyo ni tarakimu ya heksadesimali 0-9, a-f au A-F.Ikiwa swaliIP iliyotolewa itapitisha mojawapo ya uthibitishaji ulio hapo juu, inachukuliwa kuwa anwani halali ya IPv4 au IPv6. Vinginevyo, inachukuliwa kuwa Wala. 