يضيف مصنعو SmartTV الكثير من الراحة إلى أجهزة التلفزيون الخاصة بهم. من بينها أستخدم التلفزيون ، تلفزيون IP ، عرض محتويات خادم DNLA الخاص بي ، youtube و skype.في المقابل ، يريد المصنعون (هذا مكتوب في الاتفاقية التالية بعد تحديث البرامج الثابتة والبرامج التالية ، من المستحيل رفضه) معرفة ما ومتى أبدو ، وما أطلقه ، وما إلى ذلك. أنا على وجه الخصوص "أحب" القدرة على الاتصال بالتلفزيون عن بُعد للمساعدة - وهذا أمر مفيد بالتأكيد ، ولكن لا يزال ...إن أمكن ، حاولت تشويه هذه الإحصائيات عن طريق حظر الحزم من التلفزيون إلى المجالات المقابلة.كبوابة Mikrotik ، تحت القطع هو برنامج نصي يقيد الوصول باسم DNS من القائمة.قائمة المجالات المحظورة لم تكتمل ؛ تم تجميعها من الإنترنت.يمكن أيضًا استخدام البرنامج النصي لحظر المجالات الأخرى.معلمات البرنامج النصي:- يتم تحديد قائمة المجالات المراد حظرها في نص البرنامج النصي.
 يمكنك حظر المجال عن طريق تحديده في الشكل الدقيق
 "msecnd.net";
 
 أو جميع نطاقات المستوى الأعلى تشير إلى *
 "*.adform.net";
 
- NameAddressList - اسم AddressList لاستخدامه لاحقًا في قواعد جدار الحماية
يعمل البرنامج النصي في الموعد المحدد - لدي مرة واحدة في الدقيقة.في جدار الحماية ، تحتاج إلى إضافة قاعدة تمنع الوصول إلى SmartTV للنطاقات من القائمة (المحددة في البرنامج النصي ، المعلمة NameAddressList) من النموذجchain=forward action=reject reject-with=icmp-network-unreachable src-address=192.168.100.123 dst-address-list=BlockSpySmartTV log=no log-prefix="BlockSpySmartTV: " 
192.168.100.123 - عنوان التلفزيون.كيف يعمل:- بعد أول وصول إلى المجال - يقع عنوان IP المقابل في ذاكرة التخزين المؤقت Mikrotik
- يتحقق النص البرمجي من ذاكرة التخزين المؤقت وإذا تطابق ، يتم حظر عنوان IP المقابل باستخدام TTL حتى لا تسد القائمة. إذا كانت TTL = 0 ، فإن TTL = 59 ثانية.
- تقوم القاعدة المقابلة في جدار الحماية بحظر الحزم على عنوان IP هذا.
اتضح أنه خلال دقيقة واحدة (في حالتي) بعد حل النطاق - سيتم حظر عنوان IP.بعد دقيقة من تشغيل التلفزيون - حوالي عشرين عنوان IP محظور. يحدث أكثر.أظهرت مراقبة المجالات المحظورة لمدة نصف ساعة:- يتم الوصول إليها حتى لو لم تتغير القناة والحجم
- مكالمات كافية للقلق
الحمل الذي تم إنشاؤه على جهاز التوجيه - عند مستوى الخطأ - لم يلاحظ زيادة.البرنامج النصي نفسه:local NameAddressList "BlockSpySmartTV"
:local DNSDomains {
	"*.samsungelectronics.com";
	"*.samsungcloudsolution.com";
	"*.samsungcloudsolution.net";
	"*.samsungcloudsolution.com";
	"*.samsungrm.net";
	"*.samsungotn.net";
	"*.samsungosp.com";
	"*.internetat.tv";
	"*.samsungyosemite.com";
	"*.cloudfront.net";
	"*.google-analytics.com";
	"*.googletagservices.com";
	"*.googlesyndication.com";
	"*.amazonaws.com";
	"*.krxd.net";
	"*.cloudapp.net";
	"*.doubleclick.net";
	"*.xiti.com";
	"*.pavv.co.kr";
	"*.adform.net";
	"msecnd.net";
}
:local QuantDNSDomains [:len $DNSDomains]
:for iDNSDomain from=0 to=($QuantDNSDomains-1) do={ 
	:local CurrentDNSDomain (:put ($DNSDomains->($iDNSDomain)))
	:log debug " CurrentDNSDomain:'$CurrentDNSDomain'"
	:local prfx [:pick $CurrentDNSDomain 0 1];
	:log debug " prfx:'$prfx'"
	:if ($prfx != "*") do={
		:foreach i in=[/ip dns cache all find where (name~$CurrentDNSDomain ) ] do={
			:local cacheName [/ip dns cache get $i name] ;
			:local tmpAddress [:resolve $cacheName]
			:log debug " cacheName :'$cacheName' tmpAddress:'$tmpAddress'"
			delay delay-time=10ms
			:if ( [/ip firewall address-list find where address=$tmpAddress] = "") do={ 
				:local cacheName [/ip dns cache get $i name] ;
				:local cacheNameTTL [/ip dns cache get $i ttl] ;
				:log debug " cacheNameTTL: $cacheNameTTL "
				:if ( $cacheNameTTL < "00:00:59" ) do={
					:set cacheNameTTL "00:00:59"
					:log debug " SET cacheNameTTL: $cacheNameTTL "
				}
				:log warning (" added entry: dns-name: $cacheName ip-addr:$tmpAddress ttl:$cacheNameTTL ");
				/ip firewall address-list add address=$tmpAddress list=$NameAddressList comment=$cacheName timeout=$cacheNameTTL ;
			}
		}
	} else {
		:set CurrentDNSDomain [:pick $CurrentDNSDomain 1 [:len $CurrentDNSDomain] ];
		:foreach i in=[/ip dns cache all find where (name~$CurrentDNSDomain ) ] do={
			:local cacheName [/ip dns cache get $i name] ;
			:local tmpAddress [:resolve $cacheName]
			:log debug " cacheName :'$cacheName' tmpAddress:'$tmpAddress'"
			delay delay-time=10ms
			:if ( [/ip firewall address-list find where address=$tmpAddress] = "") do={ 
				:local cacheNameTTL [/ip dns cache get $i ttl] ;
				:log debug " cacheNameTTL: $cacheNameTTL "
				:if ( $cacheNameTTL < "00:00:59" ) do={
					:set cacheNameTTL "00:00:59"
					:log debug " SET cacheNameTTL: $cacheNameTTL "
				}
				:log debug (" CurrentDNSDomain: '$CurrentDNSDomain' added entry: dns-name: $cacheName ip-addr:$tmpAddress ttl:$cacheNameTTL ");
				/ip firewall address-list add address=$tmpAddress list=$NameAddressList comment=$cacheName timeout=$cacheNameTTL ;
			}
		}
	}
}
 تحديث 2017.06.13بعد إصدار إصدار RouterOS 6.36 - أصبح من الممكن المنع باستخدام اسم نظام أسماء النطاقات وليس عنوان IP. تم إعادة كتابة البرنامج النصي.الوضع الحالي لـgithub.com/ErshovSergey/Mikrotik_update_AddressList_ip