how do I get the IP address (e.g. 192.168.0.1) of a local hostname (e.g. "myComputer") on my local network in swift?
I tried this:
let host = CFHostCreateWithName(nil,"www.google.com").takeRetainedValue();
CFHostStartInfoResolution(host, .Addresses, nil);
var success: Boolean = 0;
let addresses = CFHostGetAddressing(host, &success).takeUnretainedValue() as NSArray;
if (addresses.count > 0){
let theAddress = addresses[0] as NSData;
var hostname = [CChar](count: Int(NI_MAXHOST), repeatedValue: 0)
if getnameinfo(UnsafePointer(theAddress.bytes), socklen_t(theAddress.length),
&hostname, socklen_t(hostname.count), nil, 0, NI_NUMERICHOST) == 0 {
if let numAddress = String.fromCString(hostname) {
println(numAddress)
}
}
}
This works fine for addresses like "www.google.com" but not for hostnames like "myComputer"
I tried it in Xcode Simulator. There it works, but not on my iPhone
I'll get the error:
fatal error: unexpectedly found nil while unwrapping an Optional value
... in Line 4.
Thanks for your help!