///////////////////////////////////////////////////////////////////////////
//
// DNSBL - Spam IP address checker.
// Copyright (C) 2011 Alexey A.Znayev
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
//
// 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
?>
آسٹریلیا کا قومی دن اور ھزارہ گی ثقافت - ھزارہ بین الاقوامی نیٹ ورک
آسٹریلیا کا قومی دن اور ھزارہ گی ثقافت
[follow_me] تحریر- لیاقت علی
میں اپنی بیٹی کے ساتھ آسٹریلیا ڈے میں شرکت کے لئے ٹرین کے زریعہ سٹی روانہ ہوئے خوش قسمتی سے اپنےدیرینہ دوست صادق افشار اور انکی فیملی سے ٹرین میں ملاقات ہوئی وہ بهی اپنی فیملی کے ساتھ وہی جارہے تهے
ملبرین سٹی پہنچنے پر دیکها کہ ہزاروں لوگ آسٹریلیا ڈے منانے پنچ چکے تهے سڑک کے دونوں جانب ایک جم غفیر تها۔مختلف کمیونٹیز اپنی کمیونٹی اور اپنی ثقافت کے رنگوں کے ساتھ نمایاں تهے ہزارہ کمیونٹی بهی ان میں سے ایک تهے
کمیونٹی کی نمائندگی میچد گروپ آف آرٹس کے روحِ رواں، گرین پارٹی کےسرگرم سیاسی ورکراور آسڑیلین اصائلم سیکرز کے لئے جد وجہد کرنے والے انسان دوست جوان جان گلزاری کر رہے تهے.مارچ کے دوران سڑکوں کے دونوں جانب کھڑے ہزاروں لوگوں نے ہزارہ گی ثقافت کو خوب سراہا اور اس سے لطف اندوز ہوئے اور خوشی کا اظہار کرتے ہوئے پرجوش اندازمیں استقبال کر کے تالیاں بجا رہے تھے.
خواتین اور بچوں نے مخصوص ہزارہ گی لباس ،مردوں نے لنگی اور چیپن . سید زمان .سروری . عنایت ناصری. مهران .علیزادہ .حبیب.امر گلزاری .ضامن .اور شاولی دمبورہ پر ہزارگی زبان میں ملی نغمے گا رہے تھے
سٹیج پرآسٹریلیئن پارلیمنٹ کے اراکین ودیگر اعلیٰ حکام ، بری ، بحری اور فضائیہ افواج کے سربراہان ، پولیس کمشنر و دیگر تشریف فرما تھے .
اس پیریڈ میں شرکت کرنے کا مقصد یہ تھا کہ پاکستان افغانستان، ایران، آسٹریلیا ، یورپ اور دنیا بھر میں مقیم اپنی قوم کو یہ پیغام پہنچاے کہ هم جہاں بهی ہوں اپنی ثقافت اور زبان کو زندہ رکھنے، اسکی ترویج اوردینا میں اسے روشناس کرانے کی اپنی کوششیں جاری رکھیںگے۔
مختلف کمیونٹیز کے ساتھ کے احمدی فرقے کے ایک بڑی تعداد میں لوگوں نے بهی اپنے نوجوان پیش امام کے ساتھ شرکت کیں . جہاں لوگ اپنی ثقافت کو اجاگر کر رہے تھے وہاں احمدی فرقے کے مسلمان سرور کائنات محمد مصطفی پر درود بھیج رہے تھے اور خواتین اپنے مخصوص لباس میں ملبوس تھے سر پر اسکارف اور ہاتھوں میں دستانہ پہنے ہوئے تھے. اور انکا نعرہ تها "هم امن سے محبت اور انسانوں کے عقائد کا احترام کرتے ہیں”.
احمدی فرقہ بھی شعیہ اور خاص طورپر شعیہ ھزارہ فرقے کی طرح عدم رواداری ، امتیازی سلوک اور ٹارگیٹ کلنگ کی وجہ سے پاکستان سے ہجرت کرکے یہاں آباد ھونے پر مجبور ہوئے ہیں ۔ یہ تقریب ھر لحاظ سے آسٹریلیا میں آباد ھر رنگ نسل،زبان،عقیدے اورخطے کے لوگوں کی رنگارنگ ثقافتوں پر مشتملِ ایک خوبصورت گلدستہ تھا۔