1
SwiftプロジェクトでObjective-Cコードを使用してNSNetServiceからIPアドレスを取得できました。同じことをするスウィフトコードがありますか(ブリッジヘッダーを避けるため)?さもなければ、私は今それをやっているようにしておきますが、代わりにSwiftでやりたいと思っています。NSNetServiceからSwift IPアドレス
-(NSString*)IPAddressesFromData:(NSNetService *)service {
for (NSData *address in [service addresses]) {
struct sockaddr_in *socketAddress = (struct sockaddr_in *) [address bytes];
//NSLog(@"Service name: %@ , ip: %s , port %i", [service name], inet_ntoa(socketAddress->sin_addr), [service port]);
NSString *retString = [NSString stringWithFormat:@"%s", inet_ntoa(socketAddress->sin_addr)];
return retString;
}
return @"Unknown";
}
作品
更新コード:
あなたが使用することができますfunc netServiceDidResolveAddress(sender: NSNetService) {
let theAddress = sender.addresses!.first! 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) {
print("Resolved IP address: \(numAddress)")
}
}
}
をhttp://stackoverflow.com/questions/25890533/how-can-iを見てくださいsockaddr構造体からIP文字列を取得する方法については、-get-a-real-ip-address-dns-query-in-swiftを参照してください。 –
SHazaam!ありがとうございます - 元の質問を私の更新されたコードで編集します。 –