簡體   English   中英

如何知道IP地址是否在本地網絡中,xcode

[英]How to know if an IP address is in local network, xcode

我想使用我的Objective-c(Xcode)程序知道IP地址是否在本地網絡中。 但是,問題在於,對於每個IP地址(即使它不在網絡中),結果都是成功。 這是代碼,請幫助我如何確定IP地址是否正確在本地網絡中。

            bool success = false;
            const char *host_name = [@"192.168.0.115" cStringUsingEncoding:NSASCIIStringEncoding];

            SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
                                                                                        host_name);
            SCNetworkReachabilityFlags flags;
            success = SCNetworkReachabilityGetFlags(reachability, &flags);
            bool isAvailable = success && (flags & kSCNetworkFlagsReachable) &&
            !(flags & kSCNetworkFlagsConnectionRequired);
            if (isAvailable)
            {
              //success
              //connect to IP address                      

            }
            else
            {
               //Not success
            }

使用此代碼

Reachability* reachability = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain]; // does not work with local IP, ARC is not used.
NetworkStatus netStatus = [reachability currentReachabilityStatus];

netStatus將為您提供狀態。

UPDATE

Reachability reachabilityWithHostName:不適用於本地IP,因為它無法解析地址。 因此,此解決方案不能回答問題。 但是,如下面注釋中@Kerberos所引用,此啟用ARC的庫可用於檢查與本地IP地址的連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM