Here goes another code of mine.
It uses ipconfig /all for getting the information. That was done because getting the MAC is impossible in any other way (but with a helper EXE file). Also it works on all Windows platforms (NT/2k/XP tested).

Note that you will need to adjust the script for other languages. It's currently working on english and german environments.

FUNCTION GETNETWORKINFORMATION ()
SHELL "%COMSPEC% /C %WINDIR%\system32\ipconfig.exe /all >%temp%\ipconfig.txt"
IF OPEN(10, "%TEMP%\ipconfig.txt")=0
$NetworkLine = READLINE(10)
$NetworkInGroup = "NO"
WHILE @ERROR=0
IF LEFT($NetworkLine,1)=CHR(9) OR LEFT($NetworkLine,1)=CHR(32)
; Tab/Space-Found, are we already in a group?
IF $NetworkInGroup="NO"
$NETWORK_IP = ""
$NETWORK_SUBNET = ""
$NETWORK_MAC = ""
$NetworkInGroup = "YES"
ENDIF
$NetworkLine = SUBSTR($NetworkLine,2)
$NetworkPos = INSTRREV($NetworkLine,":")
$NetworkData = TRIM(SUBSTR($NetworkLine,$NetworkPos+1))
$NetworkPos = INSTR($NetworkLine,".")
IF $NetworkPos>0
$NetworkLine = TRIM(LEFT($NetworkLine,$NetworkPos-1))
IF $NetworkLine="Physikalische Adresse" OR $NetworkLine="Physical Address"
$NETWORK_MAC = $NetworkData
ENDIF
IF $NetworkLine="IP-Adresse" OR $NetworkLine="IP Address"
$NETWORK_IP = $NetworkData
ENDIF
IF $NetworkLine="Subnetzmaske" OR $NetworkLine="Subnet Mask"
$NETWORK_SUBNET = $NetworkData
ENDIF
ENDIF
ELSE
IF $NetworkInGroup="YES"
IF LEN($NETWORK_IP)>0 AND LEN($NETWORK_SUBNET)>0 AND LEN($NETWORK_MAC)>0
$ = CLOSE(10)
RETURN
ENDIF
ENDIF
ENDIF
$NetworkLine = READLINE(10)
LOOP
$ = CLOSE(10)
ENDIF
$NETWORK_IP = ""
$NETWORK_SUBNET = ""
$NETWORK_MAC = ""
ENDFUNCTION