Toon posts:

[VBScript]IP adres opzoeken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben mijn stage aan het afronden en ik moest nog een loginscript testen dat ik heb geschreven maar ik heb nog een dikke fout ontdekt die ik niet kan oplossen. Het is geschreven in vbscript en de WSH voert het uit. Het probleem is dat ik het ip adres moet hebben van de computer die aanlogt. Ik heb op Internet een paar procedures gevonden die het ip adres kunnen opvragen maar er zitten een paar laptops met docking stations in dat netwerk en die dingen hebben 2 ip adressen waarvan er één 0.0.0.0 is. Ik zou dus iets moeten hebben dat echt het ip adres van de netwerkkaart gaat ophalen en niet van dat docking station...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Misschien met de servervariabelen HTTP_X_FORWARDED_FOR of HTTP_VIA? In ASP kun je daar iig wel mee werken.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 20-05 00:48

ZaZ

Tweakers abonnee

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Function EasyIP()
  set sh = createobject("wscript.shell")
  set fso = createobject("scripting.filesystemobject")

  Set Env = sh.Environment("PROCESS")
  if Env("OS") = "Windows_NT" then
    workfile = fso.gettempname
    sh.run "%comspec% /c ipconfig > " & workfile,0,true
  else
    workfile = "winipcfg.out"
    sh.run "winipcfg /batch" ,0,true
  end if
  set sh = nothing
  set ts = fso.opentextfile(workfile)
  data = split(ts.readall,vbcr)
  ts.close
  set ts = nothing
  fso.deletefile workfile
  set fso = nothing
  arIPAddress = array()
  index = -1
  for n = 0 to ubound(data)
    if instr(data(n),"IP Address") then
      parts = split(data(n),":")
      if trim(parts(1)) <> "0.0.0.0" then
        index = index + 1
        ReDim Preserve arIPAddress(index)
        arIPAddress(index) = trim(cstr(parts(1)))
      end if
    end if
  next

  info = ""

  for each ip in arIPAddress
    info = info & ip
  next

  EasyIP = info
End Function

die kwam ik net tegen op mijn hd :)

edit:

weet niet of je er iets aan hebt... ik heb geen tijd om aandachtig naar je post te kijken, en deze code

[ Voor 14% gewijzigd door ZaZ op 26-05-2004 17:27 ]

Lekker op de bank


  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 25-05 07:46

glashio

C64 > AMIGA > PC

NMe84 schreef op 26 mei 2004 @ 16:59:
Misschien met de servervariabelen HTTP_X_FORWARDED_FOR of HTTP_VIA
Nee helaas, zie hier of hier
TIP : "VBscript <> VB" net als 'JavaScript != Java'

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Verwijderd

Topicstarter
ZaZ schreef op 26 mei 2004 @ 17:25:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Function EasyIP()
  set sh = createobject("wscript.shell")
  set fso = createobject("scripting.filesystemobject")

  Set Env = sh.Environment("PROCESS")
  if Env("OS") = "Windows_NT" then
    workfile = fso.gettempname
    sh.run "%comspec% /c ipconfig > " & workfile,0,true
  else
    workfile = "winipcfg.out"
    sh.run "winipcfg /batch" ,0,true
  end if
  set sh = nothing
  set ts = fso.opentextfile(workfile)
  data = split(ts.readall,vbcr)
  ts.close
  set ts = nothing
  fso.deletefile workfile
  set fso = nothing
  arIPAddress = array()
  index = -1
  for n = 0 to ubound(data)
    if instr(data(n),"IP Address") then
      parts = split(data(n),":")
      if trim(parts(1)) <> "0.0.0.0" then
        index = index + 1
        ReDim Preserve arIPAddress(index)
        arIPAddress(index) = trim(cstr(parts(1)))
      end if
    end if
  next

  info = ""

  for each ip in arIPAddress
    info = info & ip
  next

  EasyIP = info
End Function

die kwam ik net tegen op mijn hd :)

edit:

weet niet of je er iets aan hebt... ik heb geen tijd om aandachtig naar je post te kijken, en deze code
Net is getest maar ik krijg geen output met een echo commando, ik zal morgen nog eens op men stageplek testen en ik zal dan wel zien of er iets uit de bus valt, andere suggesties zijn welkom, men stage loopt vrijdag af en dat probleem moet tegen dan opgelost zijn :(

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

glashio schreef op 26 mei 2004 @ 19:45:
TIP : "VBscript <> VB" net als 'JavaScript != Java'
offtopic:
Ik zie je punt niet. :P TS vroeg om een oplossing in VBScript, dus gaf ik hem een oplossing die bij mij in een VBScript werkt. Alleen gebruik ik het in een ASP omgeving, die waarschijnlijk die variabele zet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 21:57
NMe84 schreef op 26 mei 2004 @ 20:42:
[...]

offtopic:
Ik zie je punt niet. :P TS vroeg om een oplossing in VBScript, dus gaf ik hem een oplossing die bij mij in een VBScript werkt. Alleen gebruik ik het in een ASP omgeving, die waarschijnlijk die variabele zet.
Verwijderd schreef op 26 mei 2004 @ 16:56:
Het is geschreven in vbscript en de WSH voert het uit.
Bij mij worden .asp-pagina's door dllhost uitgevoerd, en niet door wscript.exe ;)

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 20-05 00:48

ZaZ

Tweakers abonnee

Verwijderd schreef op 26 mei 2004 @ 20:23:
[...]


Net is getest maar ik krijg geen output met een echo commando, ik zal morgen nog eens op men stageplek testen en ik zal dan wel zien of er iets uit de bus valt, andere suggesties zijn welkom, men stage loopt vrijdag af en dat probleem moet tegen dan opgelost zijn :(
of je leest ff wat het scriptje doet natuurlijk :) dan zie je dat het gewoon een functie is die de ip's terug geeft
zo beter dan?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
MsgBox EasyIP

Function EasyIP()
  set sh = createobject("wscript.shell")
  set fso = createobject("scripting.filesystemobject")

  Set Env = sh.Environment("PROCESS")
  if Env("OS") = "Windows_NT" then
    workfile = fso.gettempname
    sh.run "%comspec% /c ipconfig > " & workfile,0,true
  else
    workfile = "winipcfg.out"
    sh.run "winipcfg /batch" ,0,true
  end if
  set sh = nothing
  set ts = fso.opentextfile(workfile)
  data = split(ts.readall,vbcr)
  ts.close
  set ts = nothing
  fso.deletefile workfile
  set fso = nothing
  arIPAddress = array()
  index = -1
  for n = 0 to ubound(data)
    if instr(data(n),"IP Address") then
      parts = split(data(n),":")
      if trim(parts(1)) <> "0.0.0.0" then
        index = index + 1
        ReDim Preserve arIPAddress(index)
        arIPAddress(index) = trim(cstr(parts(1)))
      end if
    end if
  next

  info = ""

  for each ip in arIPAddress
    if info = "" then
      info = ip
    else
      info = info & "," & ip
    end if
  next

  EasyIP = info
End Function

dan krijg je de ip's van alle kaarten als string terug gescheiden door een komma.

Lekker op de bank


Verwijderd

Topicstarter
Ik weet heus wel hoe ik een functie moet aanroepen hoor :) maar ik krijg gewoon geen output om één of andere reden maar ik heb het kunnen oplossen, vandaag op Internet een andere routine gevonden die het wel goed doet.

Toch bedank voor de reply's ;)
Pagina: 1