{"id":339,"date":"2022-10-08T17:13:36","date_gmt":"2022-10-08T20:13:36","guid":{"rendered":"http:\/\/fabiobrandao.net.br\/blog\/?p=339"},"modified":"2023-03-11T22:57:35","modified_gmt":"2023-03-12T01:57:35","slug":"c-como-validar-um-ipv4","status":"publish","type":"post","link":"https:\/\/fabiobrandao.net.br\/blog\/csharp\/c-como-validar-um-ipv4\/","title":{"rendered":"C# &#8211; Como validar um IPv4"},"content":{"rendered":"<p>Vamos falar sobre valida\u00e7\u00e3o de IPv4. O C# j\u00e1 possui um m\u00e9todo para esta valida\u00e7\u00e3o o\u00a0<strong>IPAddress.TryParse<\/strong>. Este m\u00e9todo verifica se o valor fornecido pode ser convertido em um endere\u00e7o IPv4.<\/p>\n<p>Vejamos um exemplo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\"> \r\nIPAddress address;\r\nreturn IPAddress.TryParse(ipv4, out address);\r\n<\/pre>\n<p>Entretando este m\u00e9todo verifica apenas se o valor fornecido pode ser convertido para um endere\u00e7o IP. Se for fornecido por exemplo o valor &#8220;1&#8221; ser\u00e1 ent\u00e3o considerado &#8220;0.0.0.1&#8221;, retornando assim uma an\u00e1lise inv\u00e1lida.<\/p>\n<p>Voc\u00ea pode implementar um m\u00e9todo mais completo como no seguinte exemplo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic static bool IPv4(string ipv4)\r\n{\r\n   if (string.IsNullOrWhiteSpace(ipv4)) return false;\r\n\r\n   string&#x5B;] splitValues = ipv4.Split('.');\r\n   if (splitValues.Length != 4) return false;\r\n\r\n   IPAddress address;\r\n   return IPAddress.TryParse(ipv4, out address);\r\n}\r\n<\/pre>\n<p>Neste exemplo verificamos se a string n\u00e3o \u00e9 nula ou cont\u00e9m espa\u00e7os para evitar a exce\u00e7\u00e3o, verificamos se cont\u00e9m os 3 pontos e os 4 blocos de informa\u00e7\u00e3o separados pelos pontos e, em seguida, fazemos a valida\u00e7\u00e3o com\u00a0<strong>IPAddress.TryParse<\/strong>.<\/p>\n<p>Note que este exemplo \u00e9 v\u00e1lido para a valida\u00e7\u00e3o do IPv4.<\/p>\n<p>Existem outras alternativas para valida\u00e7\u00e3o do IPv4 e este \u00e9 um bom ponto de partida.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vamos falar sobre valida\u00e7\u00e3o de IPv4. O C# j\u00e1 possui um m\u00e9todo para esta valida\u00e7\u00e3o o\u00a0IPAddress.TryParse. Este m\u00e9todo verifica se o valor fornecido pode ser convertido em um endere\u00e7o IPv4&#8230;. <\/p>\n","protected":false},"author":1,"featured_media":360,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[82],"tags":[39,73,75,74],"class_list":["post-339","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","tag-c","tag-ip","tag-ipv4","tag-validacao"],"_links":{"self":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts\/339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/comments?post=339"}],"version-history":[{"count":6,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts\/339\/revisions"}],"predecessor-version":[{"id":345,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/posts\/339\/revisions\/345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/media\/360"}],"wp:attachment":[{"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/media?parent=339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/categories?post=339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabiobrandao.net.br\/blog\/wp-json\/wp\/v2\/tags?post=339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}