IP

Julia

The Julia network functions are in package Socket and are formally documented at Sockets

IP types

Julia has the abstract type IPAddr with subtypes IPv4 and IPv6. There are constructors for each, using an apprpopriate integer for each e.g.


julia> IPv4(3223256218)
ip"192.30.252.154"

julia> IPv6(3223256218)
ip"::c01e:fc9a"
      
and also string constructors

julia> ip"127.0.0.1"
ip"127.0.0.1"

julia> @ip_str "2001:db8:0:0:0:0:2:1"
ip"2001:db8::2:1"
      

Get one DNS address

Julia uses the C function getaddrinfo() to get an IPv4 or IPv6 address using a DNS lookup. A sample program is IP.jl illustrates these:


using Sockets

if size(ARGS)[1] < 1
   println("Usage: IP hostname")
   exit(1)
end


try
   global ip
   ip = Sockets.getaddrinfo(ARGS[1], IPv6)
catch exc
   println("No address")
   exit(2)
end

println(ip)

Get all DNS addresses

To get all IP addresses for a host, use getalladdrinfo() as in IPs.jl illustrates these:


# See https://docs.julialang.org/en/v1/stdlib/Sockets/#Sockets.getaddrinfo

using Sockets

if size(ARGS)[1] < 1
   println("Usage: IP hostname")
   exit(1)
end


try
   global ips
   ips = Sockets.getalladdrinfo(ARGS[1])
catch exc
   println("No address")
   exit(2)
end

println(ips)

Get all addresses for an interface

There doesn't seem to be anything yet.


Copyright © Jan Newmarch, jan@newmarch.name
Creative Commons License
" Network Programming using Java, Go, Python, Rust, JavaScript and Julia" by Jan Newmarch is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License .
Based on a work at https://jan.newmarch.name/NetworkProgramming/ .

If you like this book, please contribute using PayPal