mirror of
https://github.com/amineo/t2_server_query_elixir.git
synced 2026-03-23 14:20:44 +00:00
feat(query): IPv4 validation handler
This commit is contained in:
parent
9740fc8438
commit
916e738ca0
2 changed files with 34 additions and 12 deletions
|
|
@ -72,6 +72,14 @@ defmodule T2ServerQuery do
|
|||
"""
|
||||
def query(server_ip, port \\ 28_000, timeout \\ 3_500) do
|
||||
Logger.info "query: #{server_ip}"
|
||||
case is_valid_ip?(server_ip) do
|
||||
true -> handle_query(server_ip, port, timeout)
|
||||
false -> PacketParser.init({:error, "#{server_ip} - Invalid IP" }, nil)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
defp handle_query(server_ip, port, timeout) do
|
||||
|
||||
{:ok, socket} = :gen_udp.open(0, [:binary, {:active, false}])
|
||||
|
||||
|
|
@ -99,6 +107,15 @@ defmodule T2ServerQuery do
|
|||
end
|
||||
|
||||
|
||||
defp is_valid_ip?(nil), do: false
|
||||
defp is_valid_ip?(server_ip) do
|
||||
case Regex.match?(~r/^([1-2]?[0-9]{1,2}\.){3}([1-2]?[0-9]{1,2})$/, server_ip) do
|
||||
false -> false
|
||||
true -> true
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
defp handle_udp_response({:ok, {_ip, port, packet}}, _server_ip, port) do
|
||||
packet
|
||||
|> Base.encode16
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue