El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
Usuario DLL que averigue PLACA DE RED
Desconocido
Enviado - 23/9/2002
 
Hola a todos !!
necesito su ayuda
Se puede hacer una DLL en Visual Basic, para que sea utilizada por una aplicación ASP ?
Se trata de lo siguiente:
Hay una LAN sobre Linux y también hay una PC con Windows 2000 profesional que tiene IIS 5.0 y que aloja una aplicación ASP para que sea accedida desde el resto de la LAN (que tiene Linux y funciona con DHCP).
El tema de averiguar la Placa de Red es para asegurar de que cada Usuario solo pueda acceder desde una PC en particular.
Desde ya les agradezco por su atención
Diego
[email protected]
 
fmarredo
356 Mensaje(s)
Enviado - 23/9/2002
 
Con respecto a la pregunta te comento que no hay problema en desarrollar una DLL en VB e instanciar alguna de las clases que contenga desde ASP, usando Set MiObjeto = Server.CreateObject("Libreria.Clase").
 
Desconocido
Enviado - 24/9/2002
 
Hola fmarredo, muchas gracias por tu respuesta.
Con respecto DLL, vos me podés dar una mano por favor ?
Necesitaría saber que código es el que averigua el numero de la placa de red. Resulta que me dijo uno de los administradores de la Red - en la que debe funcionar la aplicacion ASP intranet - que manejaran DHCP y que las IP no van a ser siempre las mismas, osea que no se debe tomar la IP como referencia de una PC en particular. Entonces hay algun codigo que averigue, cada vez que se conecta un cliente a la aplicacion, el numero de placa de red sin saber previamente la IP ?
Diego
 
Desconocido
Enviado - 24/9/2002
 
Hola fmarredo, muchas gracias por tu respuesta.
Con respecto DLL, vos me podés dar una mano por favor ?
Necesitaría saber que código es el que averigua el numero de la placa de red. Resulta que me dijo uno de los administradores de la Red - en la que debe funcionar la aplicacion ASP intranet - que manejaran DHCP y que las IP no van a ser siempre las mismas, osea que no se debe tomar la IP como referencia de una PC en particular. Entonces hay algun codigo que averigue, cada vez que se conecta un cliente a la aplicacion, el numero de placa de red sin saber previamente la IP ?
Diego
 
fmarredo
356 Mensaje(s)
Enviado - 24/9/2002
 
me parece que para identificar a un cliente podrías utilizar cookies, es mucho más sencillo que tratar de averiguar el nro de placa de red de una máquina remota.
 
Desconocido
Enviado - 25/9/2002
 
fmarredo, me podes dar una mano con lo de la Placa de Red? es muy util
pasa que con cookies no se si es tan seguro,
pero si me explicas como hacerlo con cookies te lo agradezco
Diego
 
fmarredo
356 Mensaje(s)
Enviado - 28/9/2002
 
Acá te paso código que encontré para averiguar la dir de la tarjeta de red, espero que te sirva.

Author: The VB2TheMax Team

Const NCBNAMSZ = 16

Private Type NCB
ncb_command As Byte
ncb_retcode As Byte
ncb_lsn As Byte
ncb_num As Byte
ncb_buffer As Long
ncb_length As Integer
ncb_callname As String * NCBNAMSZ
ncb_name As String * NCBNAMSZ
ncb_rto As Byte
ncb_sto As Byte
ncb_post As Long
ncb_lana_num As Byte
ncb_cmd_cplt As Byte
ncb_reserve(9) As Byte
ncb_event As Long
End Type

Private Type ADAPTER_STATUS
adapter_address(5) As Byte
rev_major As Byte
reserved0 As Byte
adapter_type As Byte
rev_minor As Byte
duration As Integer
frmr_recv As Integer
frmr_xmit As Integer
iframe_recv_err As Integer
xmit_aborts As Integer
xmit_success As Long
recv_success As Long
iframe_xmit_err As Integer
recv_buff_unavail As Integer
t1_timeouts As Integer
ti_timeouts As Integer
Reserved1 As Long
free_ncbs As Integer
max_cfg_ncbs As Integer
max_ncbs As Integer
xmit_buf_unavail As Integer
max_dgram_size As Integer
pending_sess As Integer
max_cfg_sess As Integer
max_sess As Integer
max_sess_pkt_size As Integer
name_count As Integer
End Type

Private Type NAME_BUFFER
name As String * NCBNAMSZ
name_num As Integer
name_flags As Integer
End Type

Private Type ASTAT
adapt As ADAPTER_STATUS
NameBuff(10) As NAME_BUFFER
End Type

Private Declare Function Netbios Lib "netapi32.dll" (pncb As NCB) As Byte

' Read the Ethernet address of a LAN card.
' This number can be considered to uniquely identify a network adapter

Private Function LanCardAddress(ByVal cardNum As Long) As String
Dim ncbInfo As NCB
Dim astatInfo As ASTAT
Dim i As Integer

Const NCBASTAT = &H33
Const NCBRESET = &H32

'Reset the card
ncbInfo.ncb_command = NCBRESET
Netbios ncbInfo

' Get info from the card
ncbInfo.ncb_command = NCBASTAT
ncbInfo.ncb_lana_num = cardNum
ncbInfo.ncb_callname = "* "
ncbInfo.ncb_length = Len(astatInfo)
' prepare the address where the result is to be delivered
ncbInfo.ncb_buffer = VarPtr(astatInfo)
Netbios ncbInfo

' read the result
For i = 0 To 5
LanCardAddress = LanCardAddress & Right$("00" & Hex$ _
(astatInfo.adapt.adapter_address(i)), 2)
Next

End Function

 
Desconocido
Enviado - 2/10/2002
 
Muchas Gracias Fmarredo !!!
voy a probar el codigo y despues te cuento

Diego
 
 

 

Contactos myStudio Network

Hosteado por WNPower.com