#lang racket/base (require (planet vyzo/socket:3) (planet synx/sizeof:2)) ; why does this do a DNS lookup, then fail vyzo? >:( (define (aton address) (integer-bytes->integer (subbytes (pack-address (inet4-address address 0)) 0 8) #f #t)) (define in-size (sizeof "struct sockaddr_in" "netinet/in")) (define (ntoa n) (bytes->string/utf-8 (inet-address-host (unpack-address (bytes-append (integer->integer-bytes n 8 #f #t) (list->bytes (build-list (- in-size 8) (lambda (i) 0)))))))) (provide aton ntoa)