. // // Alexey A.Znayev, znaeff@mail.ru, http://xbsoft.org, http://xbsoft.ru // /////////////////////////////////////////////////////////////////////////// // This file contains public class DNSBL // This class performs IP address check in spam blocking lists as described // on http://ru.wikipedia.org/wiki/RBL class DNSBL { private $_aCheckers = array( // list of checkers available for individual checking 'spamhaus' => array('.zen.spamhaus.org', true), //available for group checking with 'all' key 'spamcop' => array('.bl.spamcop.net', true), //available for group checking with 'all' key 'dsbl' => array('.list.dsbl.org', false), //not available for group checking with 'all' key 'ordb' => array('.relays.ordb.org', false), //not available for group checking with 'all' key 'sorbs' => array('.dnsbl.sorbs.net', false), //not available for group checking with 'all' key 'njabl' => array('.dnsbl.njabl.org', false) //not available for group checking with 'all' key ); // AZ - 1. Key 'all' is illegal // AZ - 2. Most of spammer IP addresses is covered by 'spamhaus' & 'spamcop' (and they are fast), // some of the rest may not work sometimes, you can make them group checking available after individual testing private $_sDefaultChecker = 'spamhaus'; /////////////////////////////////////////////////////////////////////////// // CheckSpamIP - check IP for spam in checkers : given, default or all available for group checking (may be slow) // parameters: // string $ip - ip address // string $checker - checker name or 'all' or nothing // returns: // true when IP exitsts in spam-lists of $checker or at least one of all checkers // false when not or when ip address is local or not correct public function CheckSpamIP($ip, $checker = ''){ if(empty($ip)) return false; if(preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $ip) != 1) return false; $octets = explode('.', $ip); if($octets[0] == '127') return false; if($octets[0] == '10') return false; if($octets[0] == '192' && $octets[0] == '168') return false; if($octets[0] == '169' && $octets[0] == '254') return false; // ms windows if((int)$octets[0] > 255 || (int)$octets[1] > 255 || (int)$octets[2] > 255 || (int)$octets[3] > 255 ) return false; $ret_val = false; $PTR = implode(array_reverse($octets), '.'); if($checker === 'all'){ foreach(array_values($this->_aCheckers) as $c){ if($c[1]){ $ret_val = $ret_val || $this->_CheckDNSAnswer(dns_get_record($PTR . $c[0], DNS_A)); } if($ret_val) break; } }else if(array_key_exists($checker, $this->_aCheckers)){ $ret_val = $this->_CheckDNSAnswer(dns_get_record($PTR . $this->_aCheckers[$checker][0], DNS_A)); }else{ $ret_val = $this->_CheckDNSAnswer(dns_get_record($PTR . $this->_aCheckers[$this->_sDefaultChecker][0], DNS_A)); } return $ret_val; } /////////////////////////////////////////////////////////////////////////// // GetCheckers - gets list of available checker names // returns: // array of strings public function GetCheckers(){ return array_keys($this->_aCheckers); } /////////////////////////////////////////////////////////////////////////// // GetGroupCheckers - gets list of checker names available for group checking with 'all' key // returns: // array of strings public function GetGroupCheckers(){ $ret_val = array(); foreach(array_keys($this->_aCheckers) as $k) if($this->_aCheckers[$k][1]) array_push($ret_val, $k); return $ret_val; } /////////////////////////////////////////////////////////////////////////// // GetDefaultChecker - gets default checker name // returns: // string public function GetDefaultChecker(){ return $this->_sDefaultChecker; } /////////////////////////////////////////////////////////////////////////// // SetDefaultChecker - sets default checker name // parameters: // string $new_checker - new default checker name // returns: // true when success // false when failed ($new_checker is not in the list of available checker names) public function SetDefaultChecker($new_checker){ if(array_key_exists($new_checker, $this->_aCheckers)){ $this->_sDefaultChecker = $new_checker; return true; }else{ return false; } } /////////////////////////////////////////////////////////////////////////// // EnableGroupChecking - sets checker available for group checking // parameters: // string $checker - checker name // returns: // true when success ($checker is included) // false when failed ($checker is not in the list of available checker names) public function EnableGroupChecking($checker){ if(array_key_exists($checker, $this->_aCheckers)){ $this->_aCheckers[$checker][1] = true; return true; }else{ return false; } } /////////////////////////////////////////////////////////////////////////// // DisableGroupChecking - sets checker not available for group checking // parameters: // string $checker - checker name // returns: // true when success ($checker is excluded) // false when failed ($checker is not in the list of available checker names) public function DisableGroupChecking($checker){ if(array_key_exists($checker, $this->_aCheckers)){ $this->_aCheckers[$checker][1] = false; return true; }else{ return false; } } // private methods /////////////////////////////////////////////////////////////////////////// // _CheckDNSAnswer - checks DNS-server answer for 127.0.0.* values // returns: // true when success // false when failed private function _CheckDNSAnswer($dns_answer){ if(!is_array($dns_answer)) return false; $len = count($dns_answer); if($len <= 0) return false; for($i=0; $i<$len; $i++){ $obj = $dns_answer[$i]; if(!(is_object($obj) || is_array($obj))) return false; $ip_str = $obj['ip']; if(!is_string($ip_str)) return false; $pos = strpos($ip_str, '127.0.0.'); if($pos !== false) return true; } return false; } } // end of class DNSBL ?> بابہ مزاری: مذہبی طرزفکرسے کیونکرجمہوریت کی طرف آئی - ھزارہ بین الاقوامی نیٹ ورک

بابہ مزاری: مذہبی طرزفکرسے کیونکرجمہوریت کی طرف آئی

تحریر- ڈاکٹر کریم حمزہ
ترجمہ ۔ اسحاق محمدی

بابہ مزاری کی جدوجہد ایک عادلانہ نظام کیلیے تھی۔ انکو ایرانی انقلابیوں کے بے خردانہ پالیسیوں کو قریب سے مشاہدہ کرنے کا موقع ملا تھا۔   Hazara-community-copyانکا سب کو ساتھ لیکر چلنے کی پالیسی در حقیقت انکی سالوں پر محیط طویل جدوجہد کا نچھوڑ تھا۔ بابہ مزاری کی سیاسی پرورش انکے حلیفوں جنرل دوستم اور کمانڈر احمد شاہ مسعود کے برخلاف ھوئی تھی۔ آپ نے ایران کی نسبتاً بہتر سیاسی فضا میں شاہ کے خلاف مذہبی جدوجہد کی ابتدا کی تھی جہاں کے مذہبی حلقوں میں محض امربہ معروف اور نہی عن المنکر کے سادہ تصور کی بجاے اس ریجن کے با اثرترین شاہ کے ساتھ ساتھ دنیا کی سب سے مضبوط کیمونسٹ پارٹی کے خلاف سیاسی اور اقتصادی حوالوں سے ایک مربوط متبادل نظام لانا مقصود تھا۔ یہ کوئی معمولی بات نہیں کہ خود ایرانی علماء کے بچے زیادہ ترڈاکٹر علی شریعتی اور مجاہدین خلق کے بانی حنیف نژاد کے پیروکارتھے، ان میں ھاشمی رفسنجانی کی بیٹی فایزہ ھاشمی، حسین منتظری کے بیٹے محمد منتظری، صدارتی امیدوار مہدی کروبی، یہاں تک کہ خود خمینی کے بیٹے احمد خمینی سب حینف نژاد کے حامی اور تفسیرمیں انکو سب سے برتر ماننے والوں میں تھے۔

بابہ مزاری گلبدین کی طرح سادہ لوح نہیں تھے کہ وہ اسلامی انقلاب لانے کیلیے یونیورسٹی طالبات پرتیزاب پھنکنے کو ضروری گردانتا ھو یا پھر شیخ آصف یا سید انوری کی طرح نورمحمد ترہ کئی کے روایتی فقہہ کے خلاف فرامین کے آنے تک کابل کے خلاف جدوجہد کو اسلام کے منافی سجمھتے ھو۔ بابہ مزاری حقیقی طورپر اسلامی نظام کو شاہی اور کیمونیزم کے متبادل سمجھتے تھے وہ روایتی فقہہ یا کسی کی دست بوسی کیلیے جدو جہد نہیں کررھے تھے۔ لیکن انقلاب ایران کی کامیابی کے بعد ان حقیقی مبارزین کو محسوس ھوا کہ یہ اسلامی تھیوریز (تصورات) مغرب کی آزاد منڈی اور جمہوریت کے سامنے بے حد کمزور ھیں، کیونکہ اس میں نہ تو عوام الناس کیلیے آزادی ھے اور نہ ہی نان و نفقہ کی ضمانت۔ یہی وہ مرحلہ تھا جب ان حقیقی مذہبی مبارزین نے اعلیٰ انسانی اقدار اور عدل و انصاف کی خاطر اپنے نقطہ نظر کی تجدید کی۔

بابہ مزاری کویہ عزاز حاصل ھے کہ وہ سیاسی جدوجہد کے تمام مراحل طے کرچکے تھے۔ وہ احمد شاہ مسعود کی طرح صرف پنجشیر کی حد تک اوریا پھر جنرل دوستم کی طرح صرف جنگ کے پیداوار نہ تھے۔ وہ افغانستان کے تمام جنگی محاذوں سے واقفیت بھی رکھتے تھے اور اکثرانکے دورے کیا کرتے تھے جبکہ ملکی معاملات پر بھی انکی گہری نظر تھی۔ اس نے انقلاب کی آڑ میں خمینی کی ڈکٹیٹرشپ کو ابھرتے اور بھکرتے دیکھا تھا اور افغانی مذہبی جدجہد کے نشیبوفراز سے بھے آگاہ تھے۔ بابہ مزاری حنیف نژاد، علی شریعتی اور طالقانی جیسے بلند پایہ اسلامی مفکرین کے نظریات کی ناکامی کا مشاہدہ کرچکے تھے، انکی نظر میں پاکستان میں مقیم ھفت گانہ اتحاد کی زن ستیزی یا علاقایت کے گرد گھومتی پالیسی ایک بچکانہ حرکت سے زیادہ وقعت نہیں رکھتی تھی۔ انھیں ایران کے حوالے سے اس حقیقت کا تلخ تجربہ تھا کہ ایک سیاسی مذہبی آیڈیالوجی کے بطن سے اسٹالینی ڈکٹیٹرشپ کسطرح جنم لیتی ھے لہذااس نے مغربی کابل میں جنگی لحاظ سے بدترین حالات میں بھی پارٹی انتخابات کو معطل کرنا مناسب نہ سمجھا اور اکبری کے مقابلے میں جمہوری طریقے سے دوسری بار حزب وحدت کے رھبر منتخب ھوے۔

بابہ مزاری نے غیر مذہبی عناصرسے مشترکہ کام کا آغاز بھی اتفاقاً نہیں کیا تھا بلکہ وہ مذہبی عناصر کی تمام تر شکستوں کا قریب سے مشاہدہ کرکے کابل آے تھے۔ سیاسی جدوجہد سے قبل وہ نہ تو کوئی سکہ بند مذہبی رہنما تھے نہ ھی انکے آس پاس مریدوں کی جمع غفیر، وہ تو ایک غریب گھرانے کے چشم و چراغ تھے جو اپنے ھم وطنوں کیلئے بڑی آرزویں اور بڑے خواب رکھتے تھے۔ دھایوں پرمحیط انکی جدوجہد ایک عادلانہ نظام کیلئے تھی انہیں ایرانی انقلابیوں کے عقل سے عاری فیصلوں اور خودغرضانہ اقدامات کے تباہ کن نتایج کا بخوبی علم تھا اس لیے وہ سب کو ساتھ لیکراور سب کیلئے یکساں انصاف چاہتے تھے۔ جنرل دوستم کو گلبدین کیلئے قابل قبول بنانا کوئی آسان ٹاسک نہیں تھا اس کیلئے بے انتہا انرجی کی ضرورت تھی جو صرف مزاری کے پاس تھی۔ انکی تھیوری "تمام اقوام کی قبولیت ایک کامیاب ملک کی ضرورت” اب بھی دوست اور دشمن کی ورد زبان ھیں۔ وہ عناصر جو "مزاری سیکولر عناصرکے نرغے میں” کا پروپیگنڈہ کرتے تھے، انکو بابہ مزاری کے وسیع تجربات اور عظیم بصیرت کا شعور ھی نہیں۔


Join the Conversation