- cats
- 大ベテラン
- 会議室デビュー日: 2002/11/29
- 投稿数: 221
- お住まい・勤務地: 東京
|
投稿日時: 2003-12-09 18:23
Java Solution 会議室のトピックですが、.NETではどうでしょう?
私はこんなのかな。(たたき台として下さい)
コード: |
| public static bool IsIPAddress(string s)
{
return Regex.IsMatch(s,"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\.\\\\d+$");
}
|
標準であったりして。
|
- cats
- 大ベテラン
- 会議室デビュー日: 2002/11/29
- 投稿数: 221
- お住まい・勤務地: 東京
|
投稿日時: 2003-12-09 18:25
バックスラッシュが増えてるし、解答欄が変だ。プレビューはちゃんと出てたのに。
|
- Jitta
- ぬし
- 会議室デビュー日: 2002/07/05
- 投稿数: 6267
- お住まい・勤務地: 兵庫県・海手
|
投稿日時: 2003-12-10 08:32
「後輩に『作っとけ』」しかないっしょ(笑)
いや、本当、大変なんですよ。例えば、予約済み番号の扱いをどうするか、とか、例で上げられているのだと「999.999.999.999」も通っちゃいますよね。「つながったらOk」だと“つないでないといけない”し。
・・・と、隣の人に指摘した!!(隣の人って、catsさんじゃないですよ、念のため)
|
- きくちゃん
- ぬし
- 会議室デビュー日: 2003/08/01
- 投稿数: 854
- お住まい・勤務地: 都内某所
|
投稿日時: 2003-12-10 09:52
こんなのどうでしょう?
コード: |
|
public static bool IsIPAddress(string s)
{
if(Regex.IsMatch(s, "^[0-2]?[0-9]?[0-9]+\\.[0-2]?[0-9]?[0-9]+\\.[0-2]?[0-9]?[0-9]+\\.[0-2]?[0-9]?[0-9]+$"))
{
string[] ip = s.Split(".".ToCharArray());
if(ip.Length.Equals(4)
&& int.Parse(ip[0]) <= byte.MaxValue
&& int.Parse(ip[1]) <= byte.MaxValue
&& int.Parse(ip[2]) <= byte.MaxValue
&& int.Parse(ip[3]) <= byte.MaxValue)
{
return true;
}
}
return false;
}
|
|
- Lyn
- 会議室デビュー日: 2002/07/05
- 投稿数: 4
|
投稿日時: 2003-12-10 10:32
System.Net.IPAdressってのを使うのは無し?
ピリオド区切りか、コロン区切りかでIPv4とIPv6に対応できるみたいだし。
コード: |
| public static bool IsIPAddress(string s)
{
try
{
System.Net.IPAddress ipaddr = System.Net.IPAddress.Parse(s);
// 例外でないから OK
return true;
}
catch(Exception exc)
{
System.Diagnostics.Debug.WriteLine(exc.Message);
return false;
}
}
|
|