반응형
현재(Local) IP 가져오기
http://stackoverflow.com/questions/30748480/swift-get-devices-ip-address 참조
먼저 #import <ifaddrs.h>
를 추가해주고 나서
#import <ifaddrs.h>
다음 함수를 작성한다.
func getWiFiAddress() -> String? {
var address : String?
// Get list of all interfaces on the local machine:
var ifaddr : UnsafeMutablePointer<ifaddrs>?
guard getifaddrs(&ifaddr) == 0 else { return nil }
guard let firstAddr = ifaddr else { return nil }
// For each interface ...
for ifptr in sequence(first: firstAddr, next: { $0.pointee.ifa_next }) {
let interface = ifptr.pointee
// Check for IPv4 or IPv6 interface:
let addrFamily = interface.ifa_addr.pointee.sa_family
if addrFamily == UInt8(AF_INET) || addrFamily == UInt8(AF_INET6) {
// Check interface name:
let name = String(cString: interface.ifa_name)
if name == "en0" {
// Convert interface address to a human readable string:
var addr = interface.ifa_addr.pointee
var hostname = [CChar](repeating: 0, count: Int(NI_MAXHOST))
getnameinfo(&addr, socklen_t(interface.ifa_addr.pointee.sa_len),
&hostname, socklen_t(hostname.count),
nil, socklen_t(0), NI_NUMERICHOST)
address = String(cString: hostname)
}
}
}
freeifaddrs(ifaddr)
return address
}
그리고 나서 다음과 같이 사용하면 된다.
if let currentIPAddress = getWiFiAddress() {
print(currentIPAddress)
}
반응형
'iOS > Tip' 카테고리의 다른 글
JavaScript to Native (0) | 2016.12.21 |
---|---|
Autolayout 우선순위 (0) | 2016.12.14 |
URLSession 사용시 참고 (0) | 2016.12.08 |
메모리 정보 가져오기 (0) | 2016.11.30 |
Cookies 저장과 값 읽기 (0) | 2016.11.28 |
UIView, UIWebView 캡쳐하기 (0) | 2016.11.04 |
TextView, TextField에 메뉴 추가 하기 (0) | 2016.10.14 |
아이폰 개발 기준 해상도 (1) | 2016.10.14 |