import Foundation
func checkSpam(ipAddress: String) {
// Validate the IP address
if ipAddress.range(of: #"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$"#, options: .regularExpression) == nil {
print("Invalid IP address format")
return
}
// List of spam databases to check
let spamDatabases = [
"b.barracudacentral.org",
"bl.spamcop.net",
"dnsbl.sorbs.net",
"zen.spamhaus.org"
]
// Check each database for the IP address
for db in spamDatabases {
let query = ipAddress + "." + db
guard let addr = try? DNSResolver.resolve(query: query) else {
print("Error checking \(ipAddress) in \(db)")
continue
}
// Check if the IP address is listed
if addr == "127.0.0.2" || addr == "::1" {
print("\(ipAddress) found in \(db)")
} else {
print("\(ipAddress) not found in \(db)")
}
}
}
struct DNSResolver {
static func resolve(query: String) throws -> String {
// Perform DNS lookup here
// Simulating DNS lookup result for demonstration
// In real-world implementation, you would use a DNS resolver library or system call
return "127.0.0.2"
}
}
// Example usage
let ipToCheck = "123.456.789.10" // Replace this with the IP address you want to check
checkSpam(ipAddress: ipToCheck)
یہ اسکرپٹ پہلے ریگولر ایکسپریشن کا استعمال کرتے ہوئے IP ایڈریس کے فارمیٹ کی توثیق کرتا ہے۔ پھر، یہ DNS استفسارات بنا کر کئی سپیم ڈیٹا بیس کے خلاف IP ایڈریس چیک کرتا ہے۔ آخر میں، یہ پرنٹ کرتا ہے کہ آئی پی ایڈریس ہر ڈیٹا بیس میں پایا جاتا ہے یا نہیں۔ نوٹ کریں کہ DNSResolver
struct اصل DNS ریزولوشن کو انجام دینے کے لیے ایک پلیس ہولڈر ہے، اور حقیقی دنیا کے منظر نامے میں، آپ کو DNS حل کرنے والی لائبریری یا سسٹم کال کا استعمال کرتے ہوئے اس فعالیت کو نافذ کرنے کی ضرورت ہوگی۔
تبصرے (0)
یہاں ابھی تک کوئی تبصرہ نہیں ہے، آپ پہلے ہو سکتے ہیں!