Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-09-2015
jesusgandia1966 jesusgandia1966 is offline
Miembro
 
Registrado: mar 2015
Posts: 27
Poder: 0
jesusgandia1966 Va por buen camino
Como saber si tengo LAN o WLAN

Estoy ya cansado de buscar y no encuentro nada.
Como puedo saber si un PC tiene conectada el CABLE RJ45 (RED) si no tiene Internet en el PC.
La cosa es que quiero detectar si a un cliente se le puede acceder por ESCRITORIO REMOTO, para lo cual se necesita la conexión cableada de RED, ya que la Wi-Fi si la tuviese no vale para la conexión.

GRACIAS DE ANTEMANO.
Responder Con Cita
  #2  
Antiguo 23-09-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Supongo que eso lo quieres saber por código y el el PC del cliente, para ello se me ocurre que primero debes conocer si está conectado por wifi, para ello puedes seguir este hilo: Jugando con las conexiones Wifi, en caso de que tenga conexión wifi la desconectas y miras si hay conexión a internet. El problema lo puedes tener si está conectado por cable a un punto e acceso wifi, eso va a ser mucho más difícil de conocer.


Saludos.
Responder Con Cita
  #3  
Antiguo 24-09-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Ese es un problema muy patente en móviles. Sabes cual es la solución? Si quieres saber si puedes conectarte a (por ejemplo) google.com la unica forma correcta, segura y confiable es: conectandote a google.com. En los codigos de este tipo (que se llaman "reachability") lo que se hace es que se manda una conexión minima (como un "HEAD" por http a un dominio) y si falla, se reintenta cada tanto tiempo.


En el caso que mencionas es aun mas importante aceptar que este es el unico modo correcto, seguro y confiable; ya que el hecho de que puedas conectarte a google.com no significa que puedas conectarte a la IP/dominio del cliente: Pocos clientes mantienen una presencia tan confiable como google.com
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 24-09-2015
jesusgandia1966 jesusgandia1966 is offline
Miembro
 
Registrado: mar 2015
Posts: 27
Poder: 0
jesusgandia1966 Va por buen camino
Creo que no me he explicado bien.
Mis clientes utilizas Comanderos (Android/iPads) para conectarse al SERVIDOR por ESCRITORIO REMOTO en modo MULTI-USUARIO/MULTI-ESCRITORIO.

Este proceso solo se pude hacer a través de un P.A. o Router y los dispositivos móviles se conectar por Wi-Fi al Router/P.A y éste a de estar conectado al PC por CABLE.

Quiero que mi Software pueda detectar sin yo estar delante del PC del cliente, si este tiene la conexión de RED u Internet por LAN o por WAN.

...y no vale decir... mira si el cliente tiene Wi-Fi porque si estubiense delante del PC, entonces no haría la pregunta que hago.

Windows cuando se conecta a la RED si es LAN, en la barra de tareas pone un pequeño PC y si si se desconecta el cable de RED pone una CRUZ y si no tiene internet pone un SIMBOLO DE advertencia en amarillo.
Pero cuando se conecta por Wi-Fi pone otro SIMBOLO con rallitas de cobertura.

Pues bién, si Windows puede detectar eso, seguro que con la función adecuada yo también y eso es lo que quiero encontrar.

Saber si el cliente tiene LAN o WAN sin yo estar allí.
GRACIAS.
Responder Con Cita
  #5  
Antiguo 25-09-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
No explicaste en profundidad los motivos por los que quieres detectar una conexión por Wifi contra una LAN pero si entendí bien la pregunta.

1. La API InternetGetConnectedState te permite conocer si tienes conectado un cable de red a tu tarjeta, para ello basta que compruebes que en el Flag incluye el valor INTERNET_CONNECTION_LAN, una simple operación and binaria te lo dirá.

2. El hecho de que estés conectado o no por wifi o por cable, no te garantiza que sepas que dispones de conexión efectiva a Internet, es por eso que te dejé el enlace Saber si hay conexión de internet, donde describo una función: Webing que se conecta a una url real, como apuntaba mamcx, yo prefiero la conexión a google.com por su estabilidad, pero puede ser la misma de microsoft. Eso te garantiza que la conexión es real y funcionante. No hay ninguna API que te haga esa labor con seguridad. En ese enlace, si lo leiste, describo como usar la función a través de un proxy.

3. Pueden coexistir una LAN y una WAN, por lo que lo mejor es apagar la WAN para asegurarte que la conexión será por cable, es por eso que te dejé el enlace Jugando con las conexiones Wifi, en el muestro como escanear redes wifi, saber a las redes a las que el PC está conectado por esa vía y la intensidad de señal (las barritas que comentas) conectarte y desconectarte, si bien el código está escrito en delphi, te dejo su equivalente en C, pues intuyo que te interesa más. La función desconecta todos los interfeces wifi disponibles en el equipo:

Código:
BOOL WifiDisConect()
{
  HANDLE hClient;
  DWORD dwVersion;
  PWLAN_INTERFACE_INFO_LIST pInterfaceInfoList;
  PGUID pInterfaceGuid;

  BOOL Result = false;

  if(ERROR_SUCCESS == WlanOpenHandle(1, NULL, &dwVersion, &hClient)){
    if(ERROR_SUCCESS == WlanEnumInterfaces(hClient, NULL, &pInterfaceInfoList)){
      for(int i=0; i < pInterfaceInfoList->dwNumberOfItems; i++){
        pInterfaceGuid = &pInterfaceInfoList->InterfaceInfo[pInterfaceInfoList->dwIndex].InterfaceGuid;
        Result = (ERROR_SUCCESS == WlanDisconnect(hClient, pInterfaceGuid, NULL));
      }
      WlanFreeMemory(pInterfaceInfoList);
    }
    WlanCloseHandle(hClient, NULL);
  }
  return Result;
}
4. Si tu PC se conecta por cable a un punto de acceso wifi es posible que lo tengas más difícil.


Estoy convencido de que con la información ofrecida serás capaz de conseguir tu objetivo.

Saludos.

Última edición por escafandra fecha: 25-09-2015 a las 00:29:27.
Responder Con Cita
  #6  
Antiguo 25-09-2015
jesusgandia1966 jesusgandia1966 is offline
Miembro
 
Registrado: mar 2015
Posts: 27
Poder: 0
jesusgandia1966 Va por buen camino
gracias, con la función para saber si el cable de RED está conectado tengo suficiente ya que si el cliente tiene Internet, que compruebo anteriormente luego puedo comprobar si el CABLE está conectado y con eso me vale.
Ya que los clientes pueden ser accedidos por ESCRITORIO REMOTO aunque no tengan Internet.
Y sabiendo que los clientes que tienen USB-Wi-Fi el 95% es porque están conectados a Internet, sino, que sentido tendría tener un USB Wi-Fi.
GRACIAS, probaré la función para comprobar el cable de RED.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo puedo saber si ya tengo un formulario abierto.- socger Varios 5 11-03-2011 12:25:54
Comom saber si tengo instalado lamp Faust Linux 3 16-01-2009 02:07:00
Como saber si tengo conexión? Gagiel Internet 6 29-12-2007 20:20:32
saber cuantos componentes tengo en un form gulder Varios 6 25-04-2007 20:46:55
como saber que S.O tengo en mi Maq. caio Varios 1 24-08-2004 15:27:42


La franja horaria es GMT +2. Ahora son las 12:12:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi