我正在製作一個iOS應用程序,我需要檢查主機(例如google.com)是否可用(或正在運行/正在運行)。我一直在使用這段代碼:檢查一個主機是否在iOS SDK上運行
NSString *host = theTextField.text;
bool success = false;
const char *host_name = [host
cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
bool isAvailable = success && (flags & kSCNetworkFlagsReachable) &&
!(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable) {
status.text = @"The host is up! :)";
} else {
status.text = @"The host is down! :(";
}
}
但是我感覺它並不像它應該那樣工作。例如,如果我輸入google.com
它表示它已經啓動,但是,如果我輸入我的網頁(這是關閉的ATM)的網址,它說它也一樣(地址是zad0xsis.net
)。如果我輸入一個虛假的地址,它說它已關閉,所以它可能正常工作,我可能會考慮奇怪的事情IDK。
您是否已經在http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html查看了Apple的Reachability示例? – Tommy