Win32-dhcp-server

Win32 DHCP Server Management API

http://github.com/mikesteele81/win32-dhcp-server

Latest on Hackage:0.3.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Michael Steele
Maintained by [email protected]

This package provides a partial binding to the Win32 DHCP Server Management API. Its purpose is to query and control a Microsoft DHCP server. Enough functionality is defined so so that Ipv4 client lease and reservation records can be manipulated programmatically._Only 32-bit versions of GHC are supported at this time._

Here are a few notes on the required environment:

  • Only 32-bit executables are supported. This is mainly because pointers are assumed to be 4 bytes wide in a few places. Support for 64-bit executables may be added in the future.

  • All library calls should be supported on Windows 7 or above.

Simple Example and Usage

-- Print all MAC addresses with an active client lease
module Main where

import Data.Ip
import Data.Mac
import qualified Data.Text.IO as T
import System.Win32.DHCP

main :: IO ()
main = do
    api <- loadDHCP
    clients <- enumClients api context
    let macs = map (showMac ":" . clientHardwareAddress) clients
    mapM_ T.putStrLn macs
  where
    Right subnet = readIp "192.168.1.0"
    context = Context "192.168.1.5" subnet