<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VbScript:Определение принадлежности IP адреса к подсети с маской]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7607</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7607&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VbScript:Определение принадлежности IP адреса к подсети с маской».]]></description>
		<lastBuildDate>Fri, 21 Sep 2012 12:27:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VbScript:Определение принадлежности IP адреса к подсети с маской]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=64069#p64069</link>
			<description><![CDATA[<p>Как комментарий. Зная IP и маску подсети, для любого произвольное адреса X легко вычислить принадлежность его данной подсети по &quot;формула&quot;:</p><p>netIP &lt;= X &amp;&amp; X &lt;= bcastIP</p><p>где<br />X - произвольный адрес<br />netIP - адрес подсети<br />bcastIP - адрес бродкаста</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Fri, 21 Sep 2012 12:27:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=64069#p64069</guid>
		</item>
		<item>
			<title><![CDATA[VbScript:Определение принадлежности IP адреса к подсети с маской]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=64066#p64066</link>
			<description><![CDATA[<div class="codebox"><pre><code>function count_subnet_prefix(subnet) &#039;первый пришедший в голову алгоритм подсчета префикса подсети
	parts=split(subnet,&quot;.&quot;)
	prefix=1
	subnet_dec=parts(0)*256^3+parts(1)*256^2+parts(2)*256+parts(3)	
	do
		bin_part=cint(right(cstr(subnet_dec),1)) mod 2
		if bin_part=1 then prefix=prefix+1
		subnet_dec=(subnet_dec-bin_part)/2
	loop while (subnet_dec&gt;2)
	count_subnet_prefix=prefix
end function

function is_ip_in_network_masked(ip,network,mask)
	parts=Split(IP,&quot;.&quot;)
	dec_ip=parts(0)*256^3+parts(1)*256^2+parts(2)*256+parts(3)	
	parts=Split(network,&quot;.&quot;)
	network_start=parts(0)*256^3+parts(1)*256^2+parts(2)*256+parts(3)
	network_end=network_start+2^(32-count_subnet_prefix(mask))
	if (dec_ip&gt;=network_start)and(dec_ip&lt;=network_end) then 
		is_ip_in_network_masked = true
	else
		is_ip_in_network_masked = false
	end if
end function	
	
msgbox is_ip_in_network_masked(&quot;192.168.4.1&quot;,&quot;192.168.0.0&quot;,&quot;255.255.252.0&quot;)</code></pre></div><p>Пользуемся функцией is_ip_in_network_masked(ipадрес, начало подсети, маска) - возвращаем булево - принадлежит ip указанной подсети с указанной маской или нет</p>]]></description>
			<author><![CDATA[null@example.com (Alexey)]]></author>
			<pubDate>Fri, 21 Sep 2012 10:21:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=64066#p64066</guid>
		</item>
	</channel>
</rss>
