为了账号安全,请及时绑定邮箱和手机立即绑定

如何快速获取IP地址

如何快速获取IP地址

iOS
慕妹3146593 2019-10-18 13:52:19
我如何获得本地IpAddress?我尝试使用此Obj C示例:如何以编程方式获取iphone的IP地址当我使用该功能时,getifaddrs()我将无法再继续使用。我不能使用该功能。是否有其他方法可以执行此操作,或者我是否以错误的方式进行操作?
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

 func getIfConfigOutput() -> [String:String] {

    let cmd = "for i in $(ifconfig -lu); do if ifconfig $i | grep -q \"status: active\" ; then echo $i; fi; done"

    let interfaceString = shell(cmd)

    let interfaceArray = interfaceString.components(separatedBy: "\n")

    var finalDictionary:[String:String] = [String:String]()

    for (i,_) in interfaceArray.enumerated() {

        if (interfaceArray[i].hasPrefix("en")){

            let sp = shell("ifconfig \(interfaceArray[i]) | grep \"inet \" | grep -v 127.0.0.1 | cut -d\\  -f2")

          finalDictionary[interfaceArray[i]] = sp.replacingOccurrences(of: "\n", with: "")

        }

    }

  print(finalDictionary)

    return finalDictionary

}

func shell(_ args: String) -> String {

    var outstr = ""

    let task = Process()

    task.launchPath = "/bin/sh"

    task.arguments = ["-c", args]

    let pipe = Pipe()

    task.standardOutput = pipe

    task.launch()

    let data = pipe.fileHandleForReading.readDataToEndOfFile()

    if let output = NSString(data: data, encoding: String.Encoding.utf8.rawValue) {

        outstr = output as String

    }

    task.waitUntilExit()

    return outstr

}

这将为您提供帮助。代码返回带有接口和IP地址的字典。


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 595 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信