2

りんごのサンプルコードからのreachability.hとreachability.mでIPチェックを書きたいです。

この機能を使用したい:

+ (Reachability*) reachabilityWithAddress: (const struct sockaddr_in*) ipAddress;

したがって、sockaddr_in 構造体を取得します。

私はこれまでのところ:

struct sockaddr_in ipAddress;
    ipAddress.sin_len = sizeof(ipAddress);
    ipAddress.sin_family = AF_INET;
    ipAddress.sin_port = 80;
    struct  in_addr sin_addr = ???; //???
    char        sin_zero[8];

IP アドレスも構造体です。

struct in_addr {
    in_addr_t s_addr;
};


typedef __uint32_t      in_addr_t;  /* base type for internet address */

しかし、どうすれば構造体にIPアドレスを入れることができますか? どのフォーマットを使用すればよいですか? たとえば、192.168.2.2 は機能しません。

ありがとうございます。

4

1 に答える 1

1

inet_pton()(で定義) を使用<arpa/inet.h>して、ネットワーク アドレスを含む文字列をネットワーク形式に変換できます。また、ポート番号をホスト バイト オーダーからネットワーク バイト オーダーに変換する必要があることに注意してください。

struct sockaddr_in ipAddress;
ipAddress.sin_len = sizeof(ipAddress);
ipAddress.sin_family = AF_INET;
ipAddress.sin_port = htons(80);
inet_pton(AF_INET, "192.168.2.2", &ipAddress.sin_addr);
于 2013-05-02T09:39:25.970 に答える