相关疑难解决方法(0)

Xcode不会自动创建桥接头?

我在我的swift项目中导入了一个Obj-C文件,Xcode自动提示我按预期创建一个桥接头文件.但是,我删除了两个文件(移动到垃圾箱)进行了一些更改,但是当我再次尝试导入Obj-C文件时,提示不再出现.是什么原因?我甚至在另一个项目中测试了这个相同的场景,似乎一旦我删除了Xcode的自动创建的桥接头,它不会再次带来提示.为什么是这样?

xcode objective-c ios swift

42
推荐指数
5
解决办法
8万
查看次数

如何以编程方式获取iphone的ip地址

我使用Mongoose在iphone中启动并运行了一个Web服务器.但问题是如何让我的iphone/ipad的IP地址让用户知道他们可以访问服务器的位置.我发现[NSHost addresses]可以完成这项工作,但我正在开发app app,这是一种无证的方法.

iphone objective-c ip-address ipad

36
推荐指数
1
解决办法
7万
查看次数

如何在swift中获取IP地址

我如何获得我的本地IpAddress?

我试着用这个Obj C例子:如何以编程方式获取iphone的ip地址

当我进入该功能时,getifaddrs()我无法进一步.我无法使用该功能.

有没有其他方法可以做到这一点,或者我是以错误的方式接近这个?

ip macos networking swift

24
推荐指数
1
解决办法
3万
查看次数

如何以编程方式获取iOS设备MAC地址

如何在我的应用程序中以编程方式获取iOS设备的MAC代码?

mac-address ios

16
推荐指数
3
解决办法
6万
查看次数

究竟是什么意味着iOS网络接口名称?什么是pdp_ip?什么是ap?

我使用以下代码打印所有接口及其mac地址

- ( void )interfaceInfo{

int                 mib[6];
size_t              len;
char                *buf;
unsigned char       *ptr;
struct if_msghdr    *ifm;
struct sockaddr_dl  *sdl;

mib[0] = CTL_NET;
mib[1] = AF_ROUTE;
mib[2] = 0;
mib[3] = AF_LINK;
mib[4] = NET_RT_IFLIST;

char name[128];
memset(name, 0, sizeof(name));
for (int i=1; i<20; i ++) {
    if (if_indextoname(i, name)) {
        printf("%s ",name);            
    }else{
        continue;
    }

    if ((mib[5] = if_nametoindex(name)) == 0) {
        printf("Error: if_nametoindex error\n");
        return NULL;
    }

    if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) {
        printf("Error: …
Run Code Online (Sandbox Code Playgroud)

iphone mac-address objective-c ios network-interface

12
推荐指数
2
解决办法
2万
查看次数

检查网络接口ip版本ios

我试图了解我的活动网络接口IP版本是什么 - IPv4或IPv6.我正在使用下一个说明http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/来测试我的应用程序的IPv6兼容性.

我检查了这里可用的所有资源(例如Swift - 获取设备的IP地址,如何以编程方式获取iphone的ip地址,究竟是什么意思是iOS网络接口名称?什么是pdp_ip?什么是ap?),它有助于获得可用接口列表.当我的iPhone连接到IPv4 WiFi网络时,列表是下一个:

"awdl0/ipv6" = "fe80::14ce:f9ff:fe2a:44df";
"en0/ipv4" = "192.168.1.190";
"en0/ipv6" = "fdba:ae3c:c993::19cd:be51:e41b:632e";
"lo0/ipv4" = "127.0.0.1";
"lo0/ipv6" = "fe80::1";
"pdp_ip0/ipv4" = "100.83.148.33";
"utun0/ipv6" = "fe80::e94e:c3b6:ff73:1ded";
Run Code Online (Sandbox Code Playgroud)

当它连接到IPv6 WiFi网络时,列表是下一个:

"awdl0/ipv6" = "fe80::14ce:f9ff:fe2a:44df";
"en0/ipv4" = "169.254.127.94";
"en0/ipv6" = "2001:2::aab1:7dd5:c5dc:16dd:b678";
"lo0/ipv4" = "127.0.0.1";
"lo0/ipv6" = "fe80::1";
"pdp_ip0/ipv4" = "100.83.148.33";
"utun0/ipv6" = "fe80::e94e:c3b6:ff73:1ded";
Run Code Online (Sandbox Code Playgroud)

在这两种情况下我都有en0/ipv4和en0/ipv6,所以我不清楚如何以编程方式决定我的网络的ip版本实际上是什么.

非常感谢任何帮助.提前致谢.

iphone networking ipv4 ipv6 ios

8
推荐指数
1
解决办法
1803
查看次数

如何在不使用第三方网址的情况下获取iPhone的公共IP地址

对于我的项目,我需要获取IPhone的公共IP地址,有很多可用的示例,它们通过使用外部/第三方URL显示公共IP地址.我只想知道如何在没有使用其他网址的情况下提取IPhones的IP地址.

注意: - 我使用过这个,但只显示本地IP地址,我需要公共IP地址

   func getIPAddress() -> [String] {
    var addresses = [String]()

    // Get list of all interfaces on the local machine:
    var ifaddr : UnsafeMutablePointer<ifaddrs> = nil
    if getifaddrs(&ifaddr) == 0 {

        // For each interface ...
        for (var ptr = ifaddr; ptr != nil; ptr = ptr.memory.ifa_next) {
            let flags = Int32(ptr.memory.ifa_flags)
            var addr = ptr.memory.ifa_addr.memory

            // Check for running IPv4, IPv6 interfaces. Skip the loopback interface.
            if (flags & (IFF_UP|IFF_RUNNING|IFF_LOOPBACK)) == (IFF_UP|IFF_RUNNING) {
                if addr.sa_family == …
Run Code Online (Sandbox Code Playgroud)

iphone ios swift swift2 swift2.1

6
推荐指数
2
解决办法
3053
查看次数

如何在iOS iPhone Swift中获得热点连接设备的IP地址和MAC地址?

我的需求就像,我想要连接到我的iOS设备的热点的设备的IP和MAC地址。如何获得这些设备的IP地址列表?苹果是否允许通过代码获取与热点相关的信息?

mac-address ios

5
推荐指数
1
解决办法
1771
查看次数

iOS:如何指定用于将主机名解析为IP地址的DNS?

如标题所述,我具有要使用指定的DNS服务器解析的主机名(例如www.example.com)。例如,在一种情况下,我想使用Google的IPv4 DNS,在另一种情况下,则要使用Google的IPv6 DNS。

我在iOS上浏览了SO,找到了类似的问题(Swift-获取设备的IP地址),所以我确定可以做到,但是我不清楚如何做?

我怎样才能做到这一点?

编辑2018年6月7日

@mdeora从http://www.software7.com/blog/programmatically-query-specific-dns-servers-on-ios/提出的建议解决方案

此解决方案有效,但仅当我使用IPv4 DNS(例如Google的“ 8.8.8.8”)时才有效。如果我尝试使用IPv6 DNS 2001:4860:4860 :: 8888,我什么也收不到。

我设法更改了转换:

void setup_dns_server(res_state res, const char *dns_server)
{
    res_ninit(res);
    struct in_addr addr;

//    int returnValue = inet_aton(dns_server, &addr);
    inet_pton(AF_INET6, dns_server, &addr); // for IPv6 conversion

    res->nsaddr_list[0].sin_addr = addr;
    res->nsaddr_list[0].sin_family = AF_INET;
    res->nsaddr_list[0].sin_port = htons(NS_DEFAULTPORT);
    res->nscount = 1;

};
Run Code Online (Sandbox Code Playgroud)

但是仍然有麻烦:

void query_ip(res_state res, const char *host, char ip[])
{
    u_char answer[NS_PACKETSZ];//NS_IN6ADDRSZ NS_PACKETSZ
    int len = res_nquery(res, host, ns_c_in, ns_t_a, answer, sizeof(answer));

    ns_msg handle; …
Run Code Online (Sandbox Code Playgroud)

dns objective-c ios swift

5
推荐指数
1
解决办法
821
查看次数

管理ifaddrs以及在Swift中返回MAC地址

我有以下代码成功检索连接到我的路由器的所有IP.但我需要为每个IP获取MAC地址.

因此,不是将地址作为数组[ips]返回,而是作为字典返回[ips:0000000, mac: 000000]

是否可以通过更改以下代码来实现(来自如何在swift中获取IP地址)?

func getIFAddresses() -> [String] {


print("GET IF ADDRESSSE")

var addresses = [String]()

// Get list of all interfaces on the local machine:
var ifaddr : UnsafeMutablePointer<ifaddrs> = nil
if getifaddrs(&ifaddr) == 0 {

    print("getifaddrs\(getifaddrs)")

    // For each interface ...
    for (var ptr = ifaddr; ptr != nil; ptr = ptr.memory.ifa_next) {
        let flags = Int32(ptr.memory.ifa_flags)
        var addr = ptr.memory.ifa_addr.memory

        print("flags\(flags)")
        print("addr\(addr)")

        // Check for running IPv4, IPv6 interfaces. Skip the …
Run Code Online (Sandbox Code Playgroud)

mac-address ip-address swift

4
推荐指数
1
解决办法
2077
查看次数