2011-07-04 8 views
0

データベース、IPアドレス、名前、コメントにいくつかの列を挿入するストアドプロシージャがあります。私はどのようにユーザーのマシンのIPアドレスを取得するか分からない。おそらく、私は同じタイプ(INT)の変数を作成し、そこにIPアドレスを格納することになります。私はちょっとこれを迷っています。ASP.NetのIPアドレスパラメータ

static int IPAddress() 
{ 
get { return Request.UserHostAddress; }; 
}//How do I pass from here into my stored procedure? 


       cmdI.Parameters.Add(new SqlParameter("@IPAddress", cmdI)); 
       cmdI.Parameters.Add(new SqlParameter("@Name", cmdI)); 
       cmdI.Parameters.Add(new SqlParameter("@Comments", cmdI)); 
+0

UserHostAddressは文字列です。データベース内のIPAddressのデータ型は何ですか? –

+0

私はそれをintとして宣言しました – jpavlov

+1

IPv6についてはどうですか? [IPv6対応環境でIPv4アドレスを返す](http://www.4guysfromrolla.com/articles/071807-1.aspx) –

答えて

1

としてDBに格納することができます。 How to convert an IPv4 address into a integer in C#?

ただし、IPアドレスを文字列として格納するようにDBを変更します。この方法でIPv6をサポートします。

+0

私のデータベースにIPがフォーマットされていませんか? 16777343 – jpavlov

+0

これは 'int'として格納しているからです。 –

+0

私はdbをnvarchar(50)に変換してまだそれを得る – jpavlov

-1

IPアドレスは、実際に32ビットのint型の表現であり、あなたがint型に文字列からIPアドレスを変換する必要があり、このような

+0

私に例を挙げてもらえますか? – jpavlov

+1

ここをクリックしてください:http://stackoverflow.com/questions/461742/how-to-convert-an-ipv4-address-into-a-integer-in-c – Variant

+1

-1:それはIPv6ですか? –

関連する問題