<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AIP%2F%D8%B4%D8%B1%D8%AD</id>
	<title>وحدة:IP/شرح - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%88%D8%AD%D8%AF%D8%A9%3AIP%2F%D8%B4%D8%B1%D8%AD"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:IP/%D8%B4%D8%B1%D8%AD&amp;action=history"/>
	<updated>2026-06-07T23:05:52Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:IP/%D8%B4%D8%B1%D8%AD&amp;diff=2680&amp;oldid=prev</id>
		<title>عبد العزيز: شرح قيد التعريب</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%88%D8%AD%D8%AF%D8%A9:IP/%D8%B4%D8%B1%D8%AD&amp;diff=2680&amp;oldid=prev"/>
		<updated>2023-08-14T11:09:34Z</updated>

		<summary type="html">&lt;p&gt;شرح قيد التعريب&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{used in system}}&lt;br /&gt;
وحدة:IP هي مكتبة للعمل مع عناوين IP والشبكات الفرعية. يمكنها التعامل مع كل من [[IPv4]] و [[IPv6]]. تصدر المكتبة أربع فئات، [[#IPAddress|IPAddress]]، [[#Subnet|Subnet]]، [[# IPv4Collection|IPv4Collection]]، و [[#IPv6Collection|IPv6Collection]].&lt;br /&gt;
&lt;br /&gt;
== تحميل المكتبة ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local IP = require(&amp;#039;Module:IP&amp;#039;)&lt;br /&gt;
local IPAddress = IP.IPAddress&lt;br /&gt;
local Subnet = IP.Subnet&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPAddress ==&lt;br /&gt;
&lt;br /&gt;
تستخدم فئة IPAddress للعمل مع عناوين IP الفردية. لإنشاء عنصر IPAddress جديد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local ipAddress = IPAddress.new(ipString)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يمكن أن يكون المتغير ipString عنوان IPv4 أو IPv6 صالح.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local ipv4Address = IPAddress.new(&amp;#039;1.2.3.4&amp;#039;)&lt;br /&gt;
local ipv6Address = IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
إذا تم تمرير سلسلة غير IP أو عنوان IP غير صالح إلى الوظيفة، فسيتم إظهار خطأ. إذا كنت تريد التحقق مما إذا كانت سلسلة معينة هي عنوان IP ومتابعة الإجراء في وحدة المتصل، فاستخدم [[:mw:Extension:Scribunto/Lua_reference_manual#pcall|pcall]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local isIp, ip = pcall(IPAddress.new, &amp;#039;1.2.3.4&amp;#039;) -- isIp: true, ip: IPAddress object&lt;br /&gt;
local isIp, ip = pcall(IPAddress.new, &amp;#039;Example&amp;#039;) -- isIp: false, ip: nil&lt;br /&gt;
local isIp, ip = pcall(IPAddress.new, &amp;#039;1.2.3.256&amp;#039;) -- isIp: false, ip: nil&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يمكن مقارنة عناصر IPAddress مع العوامل ذات الصلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- Equality&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) == IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) -- true&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) == IPAddress.new(&amp;#039;1.2.3.5&amp;#039;) -- false&lt;br /&gt;
&lt;br /&gt;
-- Less than / greater than&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) &amp;lt; IPAddress.new(&amp;#039;1.2.3.5&amp;#039;)  -- true&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) &amp;gt; IPAddress.new(&amp;#039;1.2.3.5&amp;#039;)  -- false&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) &amp;lt;= IPAddress.new(&amp;#039;1.2.3.5&amp;#039;) -- true&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) &amp;lt;= IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يمكنك استخدام الوتر عليها (هذا يعادل استخدام [[#getIP|getIP]]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
tostring(IPAddress.new(&amp;#039;1.2.3.4&amp;#039;))                -- &amp;quot;1.2.3.4&amp;quot;&lt;br /&gt;
tostring(IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;)) -- &amp;quot;2001:db8::ff00:12:3456&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- Expanded IPv6 addresses are abbreviated:&lt;br /&gt;
tostring(IPAddress.new(&amp;#039;2001:db8:0:0:0:0:0:0&amp;#039;))   -- &amp;quot;2001:db8::&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يمكنك أيضًا تجميعها:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) .. &amp;#039; foo&amp;#039;                   -- &amp;quot;1.2.3.4 foo&amp;quot;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;) .. IPAddress.new(&amp;#039;5.6.7.8&amp;#039;) -- &amp;quot;1.2.3.45.6.7.8&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
تحتوي عناصر IPAddress على عدة طرق موضحة أدناه.&lt;br /&gt;
&lt;br /&gt;
=== getIP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:getIP()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
لإرجاع تمثيل سلسلة لعنوان IP. يتم اختصار عناوين IPv6 إن أمكن.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):getIP()                -- &amp;quot;1.2.3.4&amp;quot;&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;):getIP() -- &amp;quot;2001:db8::ff00:12:3456&amp;quot;&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8:0:0:0:0:0:0&amp;#039;):getIP()   -- &amp;quot;2001:db8::&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getVersion ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:getVersion()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يُرجع إصدار بروتوكول IP قيد الاستخدام. هذا هو &amp;quot;IPv4&amp;quot; لعناوين IPv4 و &amp;quot;IPv6&amp;quot; لعناوين IPv6.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):getVersion()                -- &amp;quot;IPv4&amp;quot;&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;):getVersion() -- &amp;quot;IPv6&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== isIPv4 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:isIPv4()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يعود صحيحًا إذا كان عنوان IP هو عنوان IPv4، ويعيد النتيجة خطأ إذا كان عنوان IP هو عنوان IPv4.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):isIPv4()                -- true&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;):isIPv4() -- false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== isIPv6 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:isIPv6()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يعود صحيحًا إذا كان عنوان IP هو عنوان IPv6، ويعيد النتيجة خطأ إذا كان عنوان IP هو عنوان IPv6.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):isIPv6()                -- false&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;):isIPv6() -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== isInSubnet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:isInSubnet(subnet)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يعود صحيحًا إذا كان عنوان IP موجودًا في الشبكة الفرعية &amp;lt;var&amp;gt;subnet&amp;lt;/var&amp;gt;، ويعيد القيمة خطأ في الحالات الأخرى. &amp;lt;var&amp;gt;subnet&amp;lt;/var&amp;gt; قد يكون [[#Subnet|عنصر الشبكة الفرعية]] أو سلسلة [[CIDR]].&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):isInSubnet(&amp;#039;1.2.3.0/24&amp;#039;)                             -- true&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):isInSubnet(&amp;#039;1.2.4.0/24&amp;#039;)                             -- false&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):isInSubnet(Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;))                 -- true&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;):isInSubnet(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;) -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getSubnet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:getSubnet(bitLength)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يقوم بإرجاع عنصر شبكة فرعية للشبكة الفرعية بطول بت من &amp;lt;var&amp;gt;bitLength&amp;lt;/var&amp;gt; يحتوي على عنوان IP الحالي. يجب أن تكون معلمة &amp;lt;var&amp;gt;bitLength&amp;lt;/var&amp;gt; عددًا صحيحًا بين 0 و 32 لعناوين IPv4، أو عددًا صحيحًا بين 0 و 128 لعناوين IPv6.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):getSubnet(24) -- Equivalent to Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getNextIP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:getNextIP()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
يُرجع عنصر IPAddress جديدًا مكافئًا لعنوان IP الحالي متزايدًا بواحد. يتحول عنوان (IPv4) &amp;quot;255.255.255.255&amp;quot; إلى &amp;quot;0.0.0.0&amp;quot;، وعنوان (IPv6) &amp;quot;ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff&amp;quot; إلى &amp;quot;::&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):getNextIP()                -- Equivalent to IPAddress.new(&amp;#039;1.2.3.5&amp;#039;)&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;):getNextIP() -- Equivalent to IPAddress.new(&amp;#039;2001:db8::ff00:12:3457&amp;#039;)&lt;br /&gt;
IPAddress.new(&amp;#039;255.255.255.255&amp;#039;):getNextIP()        -- Equivalent to IPAddress.new(&amp;#039;0.0.0.0&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getPreviousIP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
ipAddress:getPreviousIP()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a new IPAddress object equivalent to the current IP address decremented by one. The IPv4 address &amp;quot;0.0.0.0&amp;quot; rolls around to &amp;quot;255.255.255.255&amp;quot;, and the IPv6 address &amp;quot;::&amp;quot; rolls around to &amp;quot;ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
IPAddress.new(&amp;#039;1.2.3.4&amp;#039;):getPreviousIP()                -- Equivalent to IPAddress.new(&amp;#039;1.2.3.3&amp;#039;)&lt;br /&gt;
IPAddress.new(&amp;#039;2001:db8::ff00:12:3456&amp;#039;):getPreviousIP() -- Equivalent to IPAddress.new(&amp;#039;2001:db8::ff00:12:3455&amp;#039;)&lt;br /&gt;
IPAddress.new(&amp;#039;0.0.0.0&amp;#039;):getPreviousIP()                -- Equivalent to IPAddress.new(&amp;#039;255.255.255.255&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Subnet ==&lt;br /&gt;
&lt;br /&gt;
The Subnet class is used to work with [[subnetwork]]s of IPv4 or IPv6 addresses. To create a new Subnet object:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local subnet = Subnet.new(cidrString)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;var&amp;gt;cidrString&amp;lt;/var&amp;gt; must be a valid IPv4 or IPv6 [[CIDR]] string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local cidr = Subnet.new(&amp;#039;255.255.255.0/24&amp;#039;) -- Subnet object&lt;br /&gt;
local cidr = Subnet.new(&amp;#039;255.255.255.1/24&amp;#039;) -- error&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Subnet objects can be compared for equality:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;) == Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;)                           -- true&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;) == Subnet.new(&amp;#039;1.2.3.0/25&amp;#039;)                           -- false&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;) == Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;)              -- false&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;) == Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;) -- true&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8:0:0:0:0:0:0/112&amp;#039;) == Subnet.new(&amp;#039;2001:db8::/112&amp;#039;)         -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can use tostring on them (this is equivalent to [[#getCIDR|getCIDR]]):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
tostring(Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;))               -- &amp;quot;1.2.3.0/24&amp;quot;&lt;br /&gt;
tostring(Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;))  -- &amp;quot;2001:db8::ff00:12:0/112&amp;quot;&lt;br /&gt;
tostring(Subnet.new(&amp;#039;2001:db8:0:0:0:0:0:0/112&amp;#039;)) -- &amp;quot;2001:db8::/112&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also concatenate them:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;) .. &amp;#039; foo&amp;#039;                   -- &amp;quot;1.2.3.0/24 foo&amp;quot;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;) .. Subnet.new(&amp;#039;4.5.6.0/24&amp;#039;) -- &amp;quot;1.2.3.0/244.5.6.0/24&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Subnet objects have several methods, outlined below.&lt;br /&gt;
&lt;br /&gt;
=== getPrefix ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:getPrefix()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an IPAddress object for the lowest IP address in the subnet.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):getPrefix()              -- Equivalent to IPAddress.new(&amp;#039;1.2.3.0&amp;#039;)&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):getPrefix() -- Equivalent to IPAddress.new(&amp;#039;2001:db8::ff00:12:0&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getHighestIP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:getHighestIP()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an IPAddress object for the highest IP address in the subnet.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):getHighestIP()              -- Equivalent to IPAddress.new(&amp;#039;1.2.3.255&amp;#039;)&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):getHighestIP() -- Equivalent to IPAddress.new(&amp;#039;2001:db8::ff00:12:ffff&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getBitLength ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:getBitLength()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns the bit length of the subnet. This is an integer between 0 and 32 for IPv4 addresses, or an integer between 0 and 128 for IPv6 addresses.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):getBitLength()              -- 24&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):getBitLength() -- 112&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getCIDR ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:getCIDR()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a [[CIDR]] string representation of the subnet.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):getCIDR()               -- &amp;quot;1.2.3.0/24&amp;quot;&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):getCIDR()  -- &amp;quot;2001:db8::ff00:12:0/112&amp;quot;&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8:0:0:0:0:0:0/112&amp;#039;):getCIDR() -- &amp;quot;2001:db8::/112&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getVersion ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:getVersion()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns the version of the IP protocol being used. This is &amp;quot;IPv4&amp;quot; for IPv4 addresses, and &amp;quot;IPv6&amp;quot; for IPv6 addresses.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):getVersion()              -- &amp;quot;IPv4&amp;quot;&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):getVersion() -- &amp;quot;IPv6&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== isIPv4 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:isIPv4()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the subnet is using IPv4, and false otherwise.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):isIPv4()              -- true&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):isIPv4() -- false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== isIPv6 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:isIPv6()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the subnet is using IPv6, and false otherwise.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):isIPv6()              -- false&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):isIPv6() -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== containsIP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:containsIP(ip)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the subnet contains the IP address &amp;lt;var&amp;gt;ip&amp;lt;/var&amp;gt;, and false otherwise. &amp;lt;var&amp;gt;ip&amp;lt;/var&amp;gt; can be an IP address string, or an IPAddress object.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):containsIP(&amp;#039;1.2.3.4&amp;#039;)                             -- true&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):containsIP(&amp;#039;1.2.4.4&amp;#039;)                             -- false&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):containsIP(IPAddress.new(&amp;#039;1.2.3.4&amp;#039;))              -- true&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):containsIP(&amp;#039;2001:db8::ff00:12:3456&amp;#039;) -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== overlapsSubnet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:overlapsSubnet(subnet)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the current subnet overlaps with &amp;lt;var&amp;gt;subnet&amp;lt;/var&amp;gt;, and false otherwise. &amp;lt;var&amp;gt;subnet&amp;lt;/var&amp;gt; can be a CIDR string or a subnet object.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):overlapsSubnet(&amp;#039;1.2.0.0/16&amp;#039;)                         -- true&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):overlapsSubnet(&amp;#039;1.2.12.0/22&amp;#039;)                        -- false&lt;br /&gt;
Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;):overlapsSubnet(Subnet.new(&amp;#039;1.2.0.0/16&amp;#039;))             -- true&lt;br /&gt;
Subnet.new(&amp;#039;2001:db8::ff00:12:0/112&amp;#039;):overlapsSubnet(&amp;#039;2001:db8::ff00:0:0/96&amp;#039;) -- true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== walk ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
subnet:walk()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The walk method iterates over all of the IPAddress objects in the subnet.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
for ipAddress in Subnet.new(&amp;#039;192.168.0.0/30&amp;#039;):walk() do&lt;br /&gt;
	mw.log(tostring(ipAddress))&lt;br /&gt;
end&lt;br /&gt;
-- 192.168.0.0&lt;br /&gt;
-- 192.168.0.1&lt;br /&gt;
-- 192.168.0.2&lt;br /&gt;
-- 192.168.0.3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv4Collection ==&lt;br /&gt;
&lt;br /&gt;
The IPv4Collection class is used to work with several different IPv4 addresses and IPv4 subnets. To create a new IPv4Collection object:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local collection = IPv4Collection.new()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IPv4Collection objects have several methods, outlined below.&lt;br /&gt;
&lt;br /&gt;
=== getVersion ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:getVersion()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns the string &amp;quot;IPv4&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== addIP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addIP(ip)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adds an IP to the collection. The IP can be either a string or an [[#IPAddress|IPAddress]] object.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addIP(&amp;#039;1.2.3.4&amp;#039;)&lt;br /&gt;
collection:addIP(IPAddress.new(&amp;#039;1.2.3.4&amp;#039;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This method is chainable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addIP(&amp;#039;1.2.3.4&amp;#039;):addIP(&amp;#039;5.6.7.8&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== addSubnet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addSubnet(subnet)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adds a subnet to the collection. The subnet can be either a [[CIDR]] string or a [[#Subnet|Subnet]] object.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addSubnet(&amp;#039;1.2.3.0/24&amp;#039;)&lt;br /&gt;
collection:addSubnet(Subnet.new(&amp;#039;1.2.3.0/24&amp;#039;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This method is chainable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addSubnet(&amp;#039;1.2.0.0/24&amp;#039;):addSubnet(&amp;#039;1.2.1.0/24&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== addFromString ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addFromString(str)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extracts any IPv4 addresses and IPv4 CIDR subnets from &amp;lt;var&amp;gt;str&amp;lt;/var&amp;gt; and adds them to the collection. Any text that is not an IPv4 address or CIDR subnet is ignored.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addFromString(&amp;#039;Add some IPs and subnets: 1.2.3.4 1.2.3.5 2001:0::f foo 1.2.4.0/24&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This method is chainable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addFromString(&amp;#039;foo 1.2.3.4&amp;#039;):addFromString(&amp;#039;bar 5.6.7.8&amp;#039;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== containsIP ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:containsIP(ip)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true if the collection contains the specified IP; otherwise returns false. The &amp;lt;var&amp;gt;ip&amp;lt;/var&amp;gt; parameter can be a string or an [[#IPAddress|IPAddress]] object.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:containsIP(&amp;#039;1.2.3.4&amp;#039;)&lt;br /&gt;
collection:containsIP(IPAddress.new(&amp;#039;1.2.3.4&amp;#039;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== getRanges ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:getRanges()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a sorted array of IP pairs equivalent to the collection. Each IP pair is an array representing a contiguous range of IP addresses from pair[1] to pair[2] inclusive. pair[1] and pair[2] are [[#IPAddress|IPAddress]] objects.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addSubnet(&amp;#039;1.2.0.0/24&amp;#039;)&lt;br /&gt;
collection:addSubnet(&amp;#039;1.2.1.0/24&amp;#039;)&lt;br /&gt;
collection:addSubnet(&amp;#039;1.2.10.0/24&amp;#039;)&lt;br /&gt;
mw.logObject(collection:getRanges())&lt;br /&gt;
-- Logs the following:&lt;br /&gt;
-- table#1 {&lt;br /&gt;
--   table#2 {&lt;br /&gt;
--     1.2.0.0,&lt;br /&gt;
--     1.2.1.255,&lt;br /&gt;
--   },&lt;br /&gt;
--   table#3 {&lt;br /&gt;
--     1.2.10.0,&lt;br /&gt;
--     1.2.10.255,&lt;br /&gt;
--   },&lt;br /&gt;
-- } &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== overlapsSubnet ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:overlapsSubnet(subnet)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns true, obj if &amp;lt;var&amp;gt;subnet&amp;lt;/var&amp;gt; overlaps this collection, where obj is the first [[#IPAddress|IPAddress]] or [[#Subnet|Subnet]] object overlapping the subnet. Otherwise, returns false. &amp;lt;var&amp;gt;subnet&amp;lt;/var&amp;gt; can be a CIDR string or a [[#Subnet|Subnet]] object.&lt;br /&gt;
&lt;br /&gt;
أمثلة:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
collection:addIP(&amp;#039;1.2.3.4&amp;#039;)&lt;br /&gt;
collection:overlapsSubnet(&amp;#039;1.2.3.0/24&amp;#039;) -- true, IPAddress.new(&amp;#039;1.2.3.4&amp;#039;)&lt;br /&gt;
collection:overlapsSubnet(&amp;#039;1.2.4.0/24&amp;#039;) -- false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== IPv6Collection ==&lt;br /&gt;
&lt;br /&gt;
تُستخدم فئة IPv6Collection للعمل مع العديد من عناوين IPv6 المختلفة والشبكات الفرعية IPv6. تتشابه عناصر IPv6Collection بشكل مباشر مع عناصر [[# IPv4Collection|IPv4Collection]]: فهي تحتوي على نفس الأساليب وتعمل بنفس الطريقة، ولكن يجب أن تكون جميع عناوين IP والشبكات الفرعية المضافة إليها IPv6، وليس IPv4.&lt;br /&gt;
&lt;br /&gt;
لإنشاء عنصر IPv6Collection جديد:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local collection = IPv6Collection.new()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |&lt;br /&gt;
&amp;lt;!-- Categories below this line, please; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>