<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
	<id>https://wikitest.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3ACheckIfUserNameIsIP</id>
	<title>Module:CheckIfUserNameIsIP - Bewerkingsoverzicht</title>
	<link rel="self" type="application/atom+xml" href="https://wikitest.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3ACheckIfUserNameIsIP"/>
	<link rel="alternate" type="text/html" href="https://wikitest.nl/index.php?title=Module:CheckIfUserNameIsIP&amp;action=history"/>
	<updated>2026-04-06T19:54:03Z</updated>
	<subtitle>Bewerkingsoverzicht voor deze pagina op de wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wikitest.nl/index.php?title=Module:CheckIfUserNameIsIP&amp;diff=77968&amp;oldid=prev</id>
		<title>Colani: 1 versie geïmporteerd</title>
		<link rel="alternate" type="text/html" href="https://wikitest.nl/index.php?title=Module:CheckIfUserNameIsIP&amp;diff=77968&amp;oldid=prev"/>
		<updated>2024-03-26T11:11:34Z</updated>

		<summary type="html">&lt;p&gt;1 versie geïmporteerd&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nieuwe pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[=[&lt;br /&gt;
Functies zijn niet &amp;quot;lokaal&amp;quot;, andere modules kunnen deze module nodig hebben en deze direct aanroepen.&lt;br /&gt;
Voor IPv4-adressen wordt &amp;quot;4&amp;quot; teruggegeven&lt;br /&gt;
Voor IPv6-adressen wordt &amp;quot;6&amp;quot; teruggegeven&lt;br /&gt;
Alles wat geen IPv4 of IPv6 is geeft een &amp;quot;0&amp;quot; terug.&lt;br /&gt;
Voor oorspronkelijke code zie https://en.wikipedia.org/w/index.php?title=Module:IPAddress&amp;amp;oldid=542839577&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
function _isIpV6( s )&lt;br /&gt;
    local dcolon, groups&lt;br /&gt;
    if type( s ) ~= &amp;quot;string&amp;quot;&lt;br /&gt;
        or s:len() == 0&lt;br /&gt;
        or s:find( &amp;quot;[^:%x]&amp;quot; ) -- only colon and hex digits are legal chars&lt;br /&gt;
        or s:find( &amp;quot;^:[^:]&amp;quot; ) -- can begin or end with :: but not with single :&lt;br /&gt;
        or s:find( &amp;quot;[^:]:$&amp;quot; )&lt;br /&gt;
        or s:find( &amp;quot;:::&amp;quot; )&lt;br /&gt;
    then&lt;br /&gt;
        return false&lt;br /&gt;
    end &lt;br /&gt;
    s, dcolon = s:gsub( &amp;quot;::&amp;quot;, &amp;quot;:&amp;quot; )&lt;br /&gt;
    if dcolon &amp;gt; 1 then return false end -- at most one ::&lt;br /&gt;
    s = s:gsub( &amp;quot;^:?&amp;quot;, &amp;quot;:&amp;quot; ) -- prepend : if needed, upper&lt;br /&gt;
    s, groups = s:gsub( &amp;quot;:%x%x?%x?%x?&amp;quot;, &amp;quot;&amp;quot; ) -- remove valid groups, and count them&lt;br /&gt;
    return ( ( dcolon == 1 and groups &amp;lt; 8 ) or ( dcolon == 0 and groups == 8 ) )&lt;br /&gt;
        and ( s:len() == 0 or ( dcolon == 1 and s == &amp;quot;:&amp;quot; ) ) -- might be one dangling : if original ended with ::&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function _isIpV4( s )&lt;br /&gt;
    local function legal( n ) return ( tonumber( n ) or 256 ) &amp;lt; 256  and not n:match(&amp;quot;^0%d&amp;quot;) end-- in lua 0 is true!&lt;br /&gt;
 &lt;br /&gt;
    if type( s ) ~= &amp;quot;string&amp;quot; then return false end&lt;br /&gt;
    local p1, p2, p3, p4 = s:match( &amp;quot;^(%d+)%.(%d+)%.(%d+)%.(%d+)$&amp;quot; ) &lt;br /&gt;
    return legal( p1 ) and legal( p2 ) and legal( p3 ) and legal( p4 )&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function _testip( s )&lt;br /&gt;
    return _isIpV4( s ) and &amp;quot;4&amp;quot; or _isIpV6( s ) and &amp;quot;6&amp;quot; or &amp;quot;0&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
function p.isIpV6(frame) return _isIpV6( frame.args[ 1 ] ) and &amp;quot;1&amp;quot; or &amp;quot;0&amp;quot; end&lt;br /&gt;
function p.isIpV4(frame) return _isIpV4( frame.args[ 1 ] ) and &amp;quot;1&amp;quot; or &amp;quot;0&amp;quot; end&lt;br /&gt;
function p.testip(frame) return _testip( frame.args[ 1 ] ) or &amp;quot;&amp;quot; end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Colani</name></author>
	</entry>
</feed>