2017-12-29 24 views
0

有効なIPv4アドレスをドット10進表記で識別するアルゴリズムを記述する必要があります。 4つのオクテットから構成され、0..255(含まれる)から0(ゼロなど)の値が有効でないとみなされる場合、IPは有効であるとみなされるべきである。有効なIPv4アドレスを識別するアルゴリズム

public static bool is_valid_IP(string IpAddres) 
{ 
    string[] adress = IpAddres.Split('.'); 

    if (adress.Length!=4) 
    { 
     return false; 
    } 

    for (int i = 0; i < 4; i++) 
    { 
     int result; 
     if (adress[i][0]=='0') 
     { 
      return false; 
     } 
     if (!int.TryParse(adress[i], out result)) 
     { 
      return false; 
     } 
     if (result >255) 
     { 
      return false; 
     } 
    } 


    return true; 
} 

私が試したすべてのIPで動作しますが、私の学校でのテスト(彼らが何であるか分からない)が間違っていると言います。誰かが私が間違っていることを指摘できますか?

+1

あなたの質問が含まれている必要がありTryParseからあなたの結果を使用する必要があります0.0.0.0

除外良い[MCVE]確実_specifだけでなく、問題を再現していますコードが何をし、代わりに何をしたいかについてのic_情報。 MCVEには、間違った結果をもたらす入力の例と、結果について正しくないものに関する説明が必然的に含まれています。今のような質問では、良い、有益な回答ではなく、あなたが得ようとしているのは、あなたのアルゴリズムがどのような具体的な基準を満たしているかどうかについてのランダムな推測(下記参照)です。 –

+0

'a..b.c'を入力として渡すとどうなりますか? – mjwills

答えて

0

あなたのパーサーは、2桁または1桁の負のipsが有効であるとはかなり確信しています。

0

あなたはそれがfalseを返す存在する場合は、あなたのテストだけで、最初の0を確認する検査が001.002.003.4であれば、それは失敗し、 を使用し、先行ゼロをチェックする必要があります。 if (adress.StartsWith("0"))しかし、あなたはまた、負の数をチェック

関連する問題