Вы можете получить содержимое простых URL-адресов, например, с помощью метода * * String
init (contentsOf :).затем удалите .
и приведите к целому числу
if let url = URL(string: "https://canihazip.com/s") {
do {
let contents = try String(contentsOf: url)
let formattedContents = contents.replacingOccurrences(of: ".", with: "")
print(Int(formattedContents))
} catch {
// an error occured
}
} else {
// the URL was bad!
}
, если вам нужен каждый пунктирный адрес, используйте .map
и .split(separator:)
, чтобы получить список необязательных целочисленных значений для редактирования.
let ip = "123.456.31.10"
let badip = "123.456.fail.10"
let dottedIpArray = ip.split(separator: ".").map { Int($0) }
let corruptIpArray = badip.split(separator: ".").map { Int($0) }
print(dottedIpArray) // [Optional(123), Optional(456), Optional(31), Optional(10)]
print(corruptIpArray) // [Optional(123), Optional(456), nil, Optional(10)]
Обновлен, с URLSession
let session = URLSession.shared
let url = URL(string: "https://canihazip.com/s")!
let task = session.dataTask(with: url) { (data, response, error) in
if let error = error {
// Do something if an error occurs
print("An Error Occurred: \(error)")
return
}
// ensure we have data, response is OK, and data can be encoded to string
if let data = data, let response = response as? HTTPURLResponse, response.statusCode == 200 {
if let stringdata = String(data: data, encoding: .utf8) {
let dottedIpArray = stringdata.split(separator: ".").map { Int($0) }
print(dottedIpArray) //[Optional(168), Optional(192), Optional(0), Optional(1)]
}
}
}
task.resume()
URLSession Документация.
Best Practices