使用Swift 4 ping网站或IP地址(或检查网站是否在线)吗? [英] Ping a Website or an IP Address (or Check if a Website is Online) using Swift 4?

查看:256
本文介绍了使用Swift 4 ping网站或IP地址(或检查网站是否在线)吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从昨天开始,我一直在寻找一种简单的方法来对网站进行ping操作;检查是否在Swift中返回200.

I have been searching since yesterday for a simpler solution to just ping a website & check if it returns 200 in Swift.

但是我发现的只是目标C中的解决方案.

But all I'm finding are solutions in Objective C.

在Swift中,我找到了一些答案,例如

In Swift, I found some answers like

func pingHost(_ fullURL: String) {
        let url = URL(string: fullURL)

        let task = URLSession.shared.dataTask(with: url!) { _, response, _ in
            if let httpResponse = response as? HTTPURLResponse {
                print(httpResponse.statusCode)
            }
        }

        task.resume()
    }

但是当我从其他功能调用它时,

But when I call it from some other function like

self.pingHost("https://www.google.com")

它会给出

2018-09-26 12:46:34.076938+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect()-> No of tries: 1
2018-09-26 12:46:35.082274+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect()-> No of tries: 2
2018-09-26 12:46:36.083497+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect()-> No of tries: 3
2018-09-26 12:46:37.083964+0530 Net Alert[1608:52682] dnssd_clientstub ConnectToServer: connect() failed path:/var/run/mDNSResponder Socket:5 Err:-1 Errno:1 Operation not permitted
2018-09-26 12:46:37.084497+0530 Net Alert[1608:52682] [] nw_resolver_create_dns_service_locked [C1] DNSServiceCreateDelegateConnection failed: ServiceNotRunning(-65563)
2018-09-26 12:46:37.087264+0530 Net Alert[1608:52682] TIC TCP Conn Failed [1:0x600003706e80]: 10:-72000 Err(-65563)
2018-09-26 12:46:37.088841+0530 Net Alert[1608:52673] Task <2B08658D-5DFA-48E9-A306-A47ED130DD1F>.<1> HTTP load failed (error code: -1003 [10:-72000])
2018-09-26 12:46:37.088990+0530 Net Alert[1608:52673] Task <2B08658D-5DFA-48E9-A306-A47ED130DD1F>.<1> finished with error - code: -1003

如何仅在Swift 4&中ping一下?检查是否返回200?

How do I just simply ping in Swift 4 & check if it returns 200?

推荐答案

我认为问题很简单:您启用了 App Sandbox ,但未选中 传出连接.

I guess the problem is easy: You enabled App Sandbox but didn't check Outgoing Connections.

您的pingHost方法如何-完全正确.因此,我认为唯一的问题在于应用程序沙箱设置.

What about your pingHost method - it's completely correct. So I think only problem is in App Sandbox settings.

这篇关于使用Swift 4 ping网站或IP地址(或检查网站是否在线)吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆