2012-02-06 12 views
0

私は突然これを考えて、IPアドレスを保存するためにどのデータタイプを使用すべきかを決めることに固執しましたか?IPアドレスを保存するために使用するデータタイプは何ですか?

私は NSString考えてい

。しかし、識別のために最後の桁が必要な場合は、floatまたはdoubleを使用する必要がありますか?また、浮動小数点数が2の小数点以下を持つことができるので、それは別の問題です。

私は本当にこれを依頼する方法がわからないので、私はおそらく、誤って質問をしています。

IPアドレスは、XML形式<IP>192.168.1.1</IP>から来ています。どのように私はこれを行う必要がありますか?

答えて

1

使用NSString:あなたは一枚、使用してそれを作品を入手する必要がある場合。あなたはそれで算術演算を行うつもりはありません。別のコンポーネントが必要な場合は、NSArrayを使用できますが、NSStringはIPアドレスを格納するだけで十分です。

ニーズに応えて、あなたは常にNSString方法使用して、文字列の最後の文字を取得することができます。

NSString *lastCharacter = [ip_string substringFromIndex: [ip_string length] - 1]; 

ip_stringは、IPアドレスを保持する文字列です。コメントに応答して

編集:

ローガンのコードは、アレイにピリオドで区切られたIPアドレスの各要素を記憶しています。したがって、IPアドレスが192.168.1.1の場合、配列は(192,168,1,1)になります。

私のコードは、文字列全体のIPアドレスを格納し、その文字列の最後の文字を取得しています。 [ip_string substringFromIndex: [ip_string length] - 1]は、IPアドレスを含む文字列の最後の文字を取得するだけです。最後の文字はマイナス1文字で見つけることができます。

したがって、IPアドレスが192.168.1.1の場合、lastCharacter文字列には数字の1が含まれます。

あなたがあなたのIPアドレス文字列の最後の文字で何かをする必要があると述べて、そして私のコードは、あなたが最後の文字を取得する方法を示していますので、私はそのコードを示唆しました。

+0

あなたのコード行と@Logan Sermanのコード行の違いは何ですか?私はLogan Sermanのコードが意味することを理解することができますが、これまで私が見たことはありません。 –

+0

私の編集した反応を見てください。要約すると、IPアドレス文字列の最後の文字を取得するだけです。 – DGund

+1

ああ!それはいくつかの素晴らしい方法です!ありがとう!これを試してみるよ!そのメソッドはNSString値を正しく返しますか?整数値が必要な場合は、 '[lastCharacter integerValue]'メソッドを正しく適用する必要がありますか? –

1

文字列を使用します。 IP上で算術演算を行う必要はありませんか?

+0

今のところ、私は算術またはアルゴリズムを実行する必要があるかどうかわかりません。おそらくそうではありません。 :) お返事をありがとうございます! –

1

IPアドレスを文字列または整数の配列として保存するのが一般的です。別のオプションは、32ビット整数として格納することです。それは本当にあなたがしたいことになる。

+0

整数の配列は良いアイデアのように聞こえる。しかし、1桁に4桁を格納していますか?または、IPアドレス全体を格納する場合は、NSStringとして格納するのと同じではありませんか? –

+0

@Melvin Lai:2つの方法があります: 'var array = int [] {192,168,0,1}; // or reversed'と 'var i = 192 << 24 + 168 << 16 + 0 << 8 + 1;となります。これを32ビット整数として格納することで、必要な記憶領域を最小限に抑え、索引付けのための手渡し値も得られます。配列は単純に必要に応じて整数型への単純なアクセスを与えます(マスクベースのフィルタを実行していますが、ビットロジックを使用して168を取得したくない場合)。すべての場合において、あなたが非常に複雑なことをしない限り、文字列形式はおそらく単純性の観点から最良であることに注意してください。 – Guvante

1

私はNSStringを使用します。

+0

ありがとう!非常に多くの回答を見て、私はすべてが同じデータタイプを返信したと思います。 'NSString'として保存します。しかし、あなたのコードを見て、私はあまりにもうまくいくだろうと思う! :) –

-1

192.168.1.1は、多数の家庭用高速無線ルーターのデフォルトIPとみなされます。これは当初、Linksysによって利用されていましたが、NetgearとWestellによって製造されたもののいくつかを含む他の多くのホームネットワーク製品に使用されています。

IP addressが高速ブロードバンド無線ルータの多くのデフォルトのIPとして際立っているにもかかわらず、これは本質的にする必要がありません。多数のプロデューサがデフォルトのIPアドレスを192.168.1に設定しています。1を標準的な歳差し条件を市場に出す方法として、初めてのクライアントが簡単かつ効率的に独自のネットワーキングシステムをセットアップするのを簡単にします。

5月のみLinksysおよび他のワイヤレスルータは、192.168.1.1 IPを使用して動作しますか?

確かに192.168.1.1が非公開のIPv4アドレスであることを考えれば、どのような種類のラップトップまたはコンピュータ、モデム、スイッチ、または他のWebシステムもこの固有のIPで動作するように考案されている可能性があります。それにもかかわらず、多くの場合、192.168.1.1にデフォルトする製品がたくさんあるため、同じIPを利用する多くの異なる製品から間もなく相互作用の問題が発生する可能性があります。 private IP addressを使用して多数のユニットを所有している場合、基本的に少なくとも1つは別の場所に調整する必要があります。

+1

あなたは何を答えているか考えていますか?これはプログラミングに関する質問であり、ルーターに関する質問ではありません。このサイトの私たちのほとんどは、ルータが何であるか、そこにあるブランド、それが何であるかを知っています。この質問にはまったく当てはまらないので、この回答を削除してください。 –

関連する問題