2008-11-04 28 views

Trả lời

4

Bạn có thể cố gắng sử dụng tương tự như dịch vụ này: Whatismyip và nắm bắt chuỗi :)

tín dụng để Cookbok Erica Sadun của iPhone Developer, 2nd ed, trang 555.

13

Nếu bạn muốn bên ngoài Địa chỉ IP (địa chỉ được sử dụng để kết nối từ bên ngoài mạng cục bộ), bạn cần truy vấn một máy chủ trên mạng bên ngoài. Tìm kiếm nhanh mang lại những điều sau đây: http://checkip.dyndns.org, http://www.whatismyip.com. Nó khá đơn giản để tải trang bằng cách sử dụng ví dụ:

[NSData dataWithContentsOfURL:url]

và thực hiện một số thao tác chuỗi để truy xuất địa chỉ IP.

Nếu bạn muốn nội địa chỉ IP (một trong những giao ví dụ bằng DHCP để điện thoại của bạn), những gì bạn thường có thể làm là để giải quyết hostname của thiết bị, tức là


/* 
Returns the local IP, or NULL on failure. 
*/ 
const char* GetLocalIP() { 
    char buf[256]; 
    if(gethostname(buf,sizeof(buf))) 
    return NULL; 
    struct hostent* he = gethostbyname(buf); 
    if(!he) 
    return NULL; 
    for(int i=0; he->h_addr_list[i]; i++) { 
    char* ip = inet_ntoa(*(struct in_addr*)he->h_addr_list[i]); 
    if(ip != (char*)-1) return ip; 
    } 
    return NULL; 
} 
+4

+1 cho địa chỉ IP nội bộ mã. –

+1

đôi khi người dùng của tôi bị vô hiệu, bạn có biết lý do là gì không? – HelmiB

+0

Xin lỗi vì đã gặp phải một chuỗi cũ, nhưng bất kỳ cơ hội nào đó có thể giúp tôi chuyển đổi điều này thành nhanh? – fischgeek

Các vấn đề liên quan