C# Is Ipv 4 Adress
static bool IsIPv4Address(string inputString)
{
    var parts = inputString.Split('.');

    foreach (var v in parts)
    {
        if (!long.TryParse(v, out var n) || n > 255 || v == "" || v != n.ToString())
        {
            return false;
        }
    }

    return parts.Length == 4;
}

This splits the string by dots and validates each part as a normal IPv4 octet.

Elixir Is Ipv 4 Adress
defmodule IsIpv4Address do
  def is_ipv4_address(input_string) do
    parts = String.split(input_string, ".")

    length(parts) == 4 and Enum.all?(parts, &valid_octet?/1)
  end

  defp valid_octet?(v) do
    case Integer.parse(v) do
      {n, ""} -> n >= 0 and n <= 255 and Integer.to_string(n) == v
      _ -> false
    end
  end
end

This splits the string by dots and validates each part as a normal IPv4 octet.

Erlang Is Ipv 4 Adress
-module(is_ipv4_address).
-export([is_ipv4_address/1]).

is_ipv4_address(InputString) ->
    Parts = string:split(InputString, ".", all),
    length(Parts) =:= 4 andalso lists:all(fun valid_octet/1, Parts).

valid_octet(V) ->
    case string:to_integer(V) of
        {Int, ""} when Int >= 0, Int =< 255 ->
            integer_to_list(Int) =:= V;
        _ ->
            false
    end.

This splits the string by dots and validates each part as a normal IPv4 octet.

Go Is Ipv 4 Adress
func isIPv4Address(inputString string) bool {
	parts := strings.Split(inputString, ".")
	if len(parts) != 4 {
		return false
	}

	for _, part := range parts {
		n, err := strconv.Atoi(part)
		if err != nil || n > 255 || strconv.Itoa(n) != part {
			return false
		}
	}

	return true
}

This splits the string by dots and validates each part as a normal IPv4 octet.

Haskell Is Ipv 4 Adress
isIPv4Address :: String -> Bool
isIPv4Address s = length parts == 4 && all valid parts
  where
    parts = splitOn '.' s

    splitOn c str = foldr step [""] str
      where
        step ch acc@(cur : rest)
          | ch == c   = "" : acc
          | otherwise = (ch : cur) : rest

    valid p =
      not (null p)
        && all (`elem` ['0' .. '9']) p
        && case reads p :: [(Int, String)] of
             [(n, "")] -> n <= 255 && show n == p
             _         -> False

This splits the string by dots and validates each part as a normal IPv4 octet.

Java Is Ipv 4 Adress
public class Solution {
    public static boolean isIPv4Address(String inputString) {
        String[] a = inputString.split("\\.", -1);

        for (String v : a) {
            if (v.isEmpty() || v.length() > 3 || !v.matches("\\d+")) {
                return false;
            }
            int num = Integer.parseInt(v);
            if (num > 255 || !String.valueOf(num).equals(v)) {
                return false;
            }
        }

        return a.length == 4;
    }
}

This splits the string by dots and validates each part as a normal IPv4 octet.

Lisp Is Ipv 4 Adress
(defun split-on-char (s ch)
  (loop with start = 0
        for pos = (position ch s :start start)
        collect (subseq s start pos)
        while pos
        do (setf start (1+ pos))))

(defun is-ipv4-address (input-string)
  (let ((parts (split-on-char input-string #\.)))
    (and (= (length parts) 4)
         (every (lambda (v)
                  (and (> (length v) 0)
                       (every #'digit-char-p v)
                       (<= (parse-integer v) 255)
                       (string= v (write-to-string (parse-integer v)))))
                parts))))

This splits the string by dots and validates each part as a normal IPv4 octet.

PHP Is Ipv 4 Adress
function isIPv4Address($inputString)
{
    $a = explode('.', $inputString);
    foreach ($a as $k => $v) {
        if ( ! is_numeric($v) || $v > 255 || $v === '' || $v !== (string)(int)$v) {
            return false;
        }
    }

    return count($a) === 4;
}

This splits the string by dots and validates each part as a normal IPv4 octet.

Python Is Ipv 4 Adress
def is_ipv4_address(input_string: str) -> bool:
    parts = input_string.split(".")
    if len(parts) != 4:
        return False

    for v in parts:
        try:
            n = int(v)
        except ValueError:
            return False
        if n > 255 or v == "" or v != str(n):
            return False

    return True

This splits the string by dots and validates each part as a normal IPv4 octet.

Rust Is Ipv 4 Adress
fn is_ipv_4_adress(input_string: &str) -> bool {
    let parts: Vec<&str> = input_string.split('.').collect();
    if parts.len() != 4 {
        return false;
    }

    for part in &parts {
        match part.parse::<i64>() {
            Ok(n) => {
                if n > 255 || part.to_string() != n.to_string() {
                    return false;
                }
            }
            Err(_) => return false,
        }
    }

    true
}

This splits the string by dots and validates each part as a normal IPv4 octet.