본문 바로가기

IOS/코드

[#D1 SWIFT3] 인터넷이 연결되었는지 체크하는 방법

Swift Class에 아래의 함수 isInternetAbailable()을 추가하면 인터넷에 연결되었는지 쉽게 확인할 수 있습니다.


[Swift3 기준]


SOURCE CODE


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func isInternetAvailable() -> Bool
    {
        var zeroAddress = sockaddr_in()
        zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
        zeroAddress.sin_family = sa_family_t(AF_INET)
        
        let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
            $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in
                SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)
            }
        }
        
        var flags = SCNetworkReachabilityFlags()

        if !SCNetworkReachabilityGetFlags(defaultRouteReachability!&flags) {

            return false

        }

        let isReachable = flags.contains(.reachable)
        let needsConnection = flags.contains(.connectionRequired)

        return (isReachable && !needsConnection)
    }
cs



사용 예시


1
2
3
4
5
6
7
8
9
if(isInternetAvailable){
 
//internet avilable
 
else {
 
//internet 'not' avilable
 
}
cs