Skip to content

Instantly share code, notes, and snippets.

@mikeash
Created August 29, 2014 18:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikeash/bca3a341db74221625f5 to your computer and use it in GitHub Desktop.
Save mikeash/bca3a341db74221625f5 to your computer and use it in GitHub Desktop.
import Foundation
let host = CFHostCreateWithName(nil, "192.168.1.1").takeUnretainedValue()
CFHostStartInfoResolution(host, .Addresses, nil)
var resolved: Boolean = 0
let addresses = CFHostGetAddressing(host, &resolved).takeUnretainedValue() as NSArray
let addressData = addresses[0] as NSData
var addrin = UnsafePointer<sockaddr_in>(addressData.bytes).memory
addrin.sin_port = 0x5000
let addrPtr = withUnsafePointer(&addrin) { UnsafePointer<sockaddr>($0) }
let fd = socket(PF_INET, SOCK_STREAM, 0)
connect(fd, addrPtr, socklen_t(addressData.length))
String.fromCString(strerror(errno))
var outData = [UInt8](count: 999, repeatedValue: 0)
outData.withUnsafeMutableBufferPointer { (inout outDataPtr: UnsafeMutableBufferPointer<UInt8>) -> Void in
var len = socklen_t(outData.count)
getsockopt(fd, SOL_SOCKET, SO_PEERLABEL, UnsafeMutablePointer<Void>(outDataPtr.baseAddress), &len)
String.fromCString(strerror(errno))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment