;; network: a library of network utilities. ;; Copyright (C) 2006 Dave Herman ;; ;; Portions based on JUG (Java Uuid Generator) ;; Copyright (c) 2002-2004 Tatu Saloranta, tatu.saloranta@iki.fi ;; ;; This library is free software; you can redistribute it and/or modify it ;; under the terms of the GNU Lesser General Public License as published by ;; the Free Software Foundation; either version 2.1 of the License, or (at ;; your option) any later version. ;; ;; This library is distributed in the hope that it will be useful, but WITHOUT ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public ;; License for more details. ;; ;; You should have received a copy of the GNU Lesser General Public License ;; along with this library; if not, write to the Free Software Foundation, ;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA (module network mzscheme (require "ethernet-address.ss") (define-struct network-adapter (address) #f) (define (current-network-adapters) (let ([thunk (case (system-type) [(windows) (dynamic-require "windows.ss" 'current-network-adapters)] [else (error 'current-network-adapters "system type not supported")])]) (map (lambda (x) (cond [(assq 'address x) => (lambda (pair) (make-network-adapter (list->ethernet-address (cdr pair))))] [else #f])) (thunk)))) (provide (all-from "ethernet-address.ss") current-network-adapters network-adapter? network-adapter-address))