network-info-0.2.0.9: Access the local computer's basic network configuration

Safe Haskell | Safe
Language | Haskell98

Network.Info

Synopsis

- getNetworkInterfaces :: IO [NetworkInterface]
- data NetworkInterface = NetworkInterface {
  - name :: String
  - ipv4 :: IPv4
  - ipv6 :: IPv6
  - mac :: MAC
  }
- data IPv4 = IPv4 !Word32
- data IPv6 = IPv6 !Word32 !Word32 !Word32 !Word32
- data MAC = MAC !Word8 !Word8 !Word8 !Word8 !Word8 !Word8

# Documentation

getNetworkInterfaces :: IO [NetworkInterface] Source #

Gets the address information for each of the network interfaces on the local computer.

data NetworkInterface Source #

Describes the basic configuration of a network interface. This definition is currently limited to just one address per family.

Constructors

NetworkInterface |

Fields

- name :: String

  Interface name (e.g. "eth0", "lo", "Local Area Connection")

- ipv4 :: IPv4

  IPv4 address

- ipv6 :: IPv6

  IPv6 address

- mac :: MAC

  MAC address

Instances

Show NetworkInterface Source # |
Methods showsPrec :: Int -> NetworkInterface -> ShowS # show :: NetworkInterface -> String # showList :: [NetworkInterface] -> ShowS #
Storable NetworkInterface Source # |

Methods

sizeOf :: NetworkInterface -> Int #

alignment :: NetworkInterface -> Int #

peekElemOff :: Ptr NetworkInterface -> Int -> IO NetworkInterface #

pokeElemOff :: Ptr NetworkInterface -> Int -> NetworkInterface -> IO () #

peekByteOff :: Ptr b -> Int -> IO NetworkInterface #

pokeByteOff :: Ptr b -> Int -> NetworkInterface -> IO () #

peek :: Ptr NetworkInterface -> IO NetworkInterface #

poke :: Ptr NetworkInterface -> NetworkInterface -> IO () #

data IPv4 Source #

Represents an IPv4 address (e.g. `172.23.21.1`, `127.0.0.1`)

Constructors

IPv4 !Word32 |

Instances

Bounded IPv4 Source # |
Methods minBound :: IPv4 # maxBound :: IPv4 #
Eq IPv4 Source # |
Methods (==) :: IPv4 -> IPv4 -> Bool # (/=) :: IPv4 -> IPv4 -> Bool #
Ord IPv4 Source # |
Methods compare :: IPv4 -> IPv4 -> Ordering # (<) :: IPv4 -> IPv4 -> Bool # (<=) :: IPv4 -> IPv4 -> Bool # (>) :: IPv4 -> IPv4 -> Bool # (>=) :: IPv4 -> IPv4 -> Bool # max :: IPv4 -> IPv4 -> IPv4 # min :: IPv4 -> IPv4 -> IPv4 #
Show IPv4 Source # |
Methods showsPrec :: Int -> IPv4 -> ShowS # show :: IPv4 -> String # showList :: [IPv4] -> ShowS #
Storable IPv4 Source # |
Methods sizeOf :: IPv4 -> Int # alignment :: IPv4 -> Int # peekElemOff :: Ptr IPv4 -> Int -> IO IPv4 # pokeElemOff :: Ptr IPv4 -> Int -> IPv4 -> IO () # peekByteOff :: Ptr b -> Int -> IO IPv4 # pokeByteOff :: Ptr b -> Int -> IPv4 -> IO () # peek :: Ptr IPv4 -> IO IPv4 # poke :: Ptr IPv4 -> IPv4 -> IO () #

data IPv6 Source #

Represents an IPv6 address (e.g. `2001:db8:85a3::8a2e:370:7334`, `::1`)

Constructors

IPv6 !Word32 !Word32 !Word32 !Word32 |

Instances

Bounded IPv6 Source # |
Methods minBound :: IPv6 # maxBound :: IPv6 #
Eq IPv6 Source # |
Methods (==) :: IPv6 -> IPv6 -> Bool # (/=) :: IPv6 -> IPv6 -> Bool #
Ord IPv6 Source # |
Methods compare :: IPv6 -> IPv6 -> Ordering # (<) :: IPv6 -> IPv6 -> Bool # (<=) :: IPv6 -> IPv6 -> Bool # (>) :: IPv6 -> IPv6 -> Bool # (>=) :: IPv6 -> IPv6 -> Bool # max :: IPv6 -> IPv6 -> IPv6 # min :: IPv6 -> IPv6 -> IPv6 #
Show IPv6 Source # | Not yet capable of collapsing groups of zeros, will still generate valid addresses however.
Methods showsPrec :: Int -> IPv6 -> ShowS # show :: IPv6 -> String # showList :: [IPv6] -> ShowS #
Storable IPv6 Source # |
Methods sizeOf :: IPv6 -> Int # alignment :: IPv6 -> Int # peekElemOff :: Ptr IPv6 -> Int -> IO IPv6 # pokeElemOff :: Ptr IPv6 -> Int -> IPv6 -> IO () # peekByteOff :: Ptr b -> Int -> IO IPv6 # pokeByteOff :: Ptr b -> Int -> IPv6 -> IO () # peek :: Ptr IPv6 -> IO IPv6 # poke :: Ptr IPv6 -> IPv6 -> IO () #

data MAC Source #

Represents a MAC address (e.g. `01:23:45:67:89:ab`)

Constructors

MAC !Word8 !Word8 !Word8 !Word8 !Word8 !Word8 |

Instances

Bounded MAC Source # |
Methods minBound :: MAC # maxBound :: MAC #
Eq MAC Source # |
Methods (==) :: MAC -> MAC -> Bool # (/=) :: MAC -> MAC -> Bool #
Ord MAC Source # |
Methods compare :: MAC -> MAC -> Ordering # (<) :: MAC -> MAC -> Bool # (<=) :: MAC -> MAC -> Bool # (>) :: MAC -> MAC -> Bool # (>=) :: MAC -> MAC -> Bool # max :: MAC -> MAC -> MAC # min :: MAC -> MAC -> MAC #
Show MAC Source # |
Methods showsPrec :: Int -> MAC -> ShowS # show :: MAC -> String # showList :: [MAC] -> ShowS #
Storable MAC Source # |
Methods sizeOf :: MAC -> Int # alignment :: MAC -> Int # peekElemOff :: Ptr MAC -> Int -> IO MAC # pokeElemOff :: Ptr MAC -> Int -> MAC -> IO () # peekByteOff :: Ptr b -> Int -> IO MAC # pokeByteOff :: Ptr b -> Int -> MAC -> IO () # peek :: Ptr MAC -> IO MAC # poke :: Ptr MAC -> MAC -> IO () #