#!tcl

#
# cfgds - extract DHCP details of specified adapter from winipcfg.out
#

if {$argc != 1} {
    error "usage: cfgds address"
}
set addr [lindex $argv 0]

#echo $addr

set f [open "winipcfg.out" r]

set ip 0
set mask 0
set gw 0
set expire 0
set found 0
set dhcp 0

#
# search for the Ethernet Address
#
set pat $addr
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set found 1
        break
    }
}
if {$found == 0} {
    close $f
    echo Adapter $pat not found
    error ""
}

#
# get IP Address
#
set pat "IP Address" 
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set l [expr [llength $line]-1]
        set ip [lindex $line $l]
        break
    }
}

#
# get Mask
#
set pat "Subnet Mask" 
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set l [expr [llength $line]-1]
        set mask [lindex $line $l]
        break
    }
}

#
# get Gateway
#
set pat "Default Gateway" 
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set l [expr [llength $line]-1]
        set gw [lindex $line $l]
        if {$gw == ":"} {set gw $ip}
        break
    }
}

#
# get Lease Expires
#
set pat "Lease Expires" 
while {[gets $f line] >= 0} {
    if [regexp $pat $line] {
        set l [expr [llength $line]-1]
        set expire [lindex $line $l]
        if {$expire == ":"} {
        set expire "Tue Jan 1 80 0:00:00"
        break
        }
        set b [expr [llength $line]-5]
        set e [expr [llength $line]-1]
        set expire [lrange $line $b $e]
        break
    }
}

#
# create netcfg.tmp
#

set out [open "netcfg.tmp" w]

puts -nonewline $out $ip
puts -nonewline $out $mask
puts -nonewline $out $gw
puts -nonewline $out $expire

close $out
close $f

#echo OK
