#CS
----------
Adsl.au3.
- Desarollo: AutoIt 3.3.6.1++.
- Plataforma: Microsoft Windows XP++.
- Service pack: 2++.
- Arquitectura: 32 bits.
- Versión 3.0.1.
- Idioma: Español.
- Descripción: Librería para la gestión y el acceso a internet local o remoto, la telefonía móvil y la telefonía fija.
- Autor: Jonny.
- Agradecimientos: A los miembros del foro de autoit en español (http://www.autoit.es), por resolver muchas dudas que me surgieron al escribir esta librería.
- Fecha inicio programación: 10/11/2008 (versión 1.0.0).
- Fecha fin programación: 27/10/2011 (versión 3.0.0).
- Fecha última modificación: 28/06/2012 (versión 3.0.1).
- Nueva función: _AdslGetDownloadSpeed().
Secciones:
- Includes.
- Enumeraciones.
- Funciones de usuario.
- Funciones internas.
Categorías de funciones:
- Información remota de usuarios.
- Configuración de red.
- Información local de red.
- Gestión de la configuración de la interfaz de red.
- Configuración de la interfaz de red.
- Gestión de la configuración del firewall.
- Función interna.
Funciones (43):
Funciones de usuario:
- _AdslDeleteSpeedAcelerator($ArgTRestart=$_NotRestartValParam).
- _AdslFirewallAddAllowedProgram($ArgPathFile, $ArgName, $ArgMode=$_DisableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="").
- _AdslFirewallAddPort($ArgPort, $ArgName, $ArgLan="", $ArgProt=$_AllWinFirewallProtocol, $ArgMode=$_EnableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="").
- _AdslFirewallDelAllowedProgram($ArgPathFile, $ArgProfile=3).
- _AdslFirewallDelPort($ArgPort, $ArgLan="", $ArgProt=$_AllWinFirewallProtocol, $ArgProfile=$_AllWinFirewallProfile).
- _AdslFirewallSetAllowedProgram($ArgPathFile, $ArgName="", $ArgMode=$_DisableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="").
- _AdslFirewallSetICMP($ArgType=$_AllWinFirewallIcmp, $ArgMode=$_EnableWinFirewallMode, $ArgProfile=$_AllWinFirewallProfile, $ArgLan="").
- _AdslFirewallSetLogging($ArgPathFile="", $ArgFileSize=32767, $ArgDpPack=1, $ArgConns=1).
- _AdslFirewallSetMultiCastBroadCast($ArgMode=$_EnableWinFirewallMode, $ArgProfile=$_AllWinFirewallProfile).
- _AdslFirewallSetNotify($ArgMode=$_EnableWinFirewallMode, $ArgProfile=$_AllWinFirewallProfile).
- _AdslFirewallSetOpMode($ArgLan="", $ArgMode=$_EnableWinFirewallMode, $ArgExcep=$_EnableWinFirewallExcep, $ArgProfile=$_AllWinFirewallProfile).
- _AdslFirewallSetPort($ArgPort, $ArgName="", $ArgLan="", $ArgProt=$_AllWinFirewallProtocol, $ArgMode=$_EnableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="").
- _AdslSetFirewallReset().
- _AdslFirewallSetService($ArgServiceType=$_AllWinFirewallService, $ArgMode=$_EnableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="").
- _AdslFirewallShow($ArgInf=0).
- _AdslGetDefaultGateway().
- _AdslGetDns($ArgDNS=$_AllInfoDnsConfig).
- _AdslGetDnsType().
- _AdslGetDownloadSpeed().
- _AdslGetIpIsp($ArgIp, $ArgInfType=$_AllInfoIpIsp)-.
- _AdslGetIpLocal().
- _AdslGetIpLocation($ArgIp, $ArgInfType=$_AllInfoIpLocation).
- _AdslGetIpRemote($ArgShocket).
- _AdslGetIpType($ArgIp).
- _AdslGetLanDisable().
- _AdslGetLanEnable().
- _AdslGetLanFileConfig($ArgFileName, $ArgFilePath=@ScriptDir).
- _AdslGetMacIdIpLocal($ArgIp).
- _AdslGetMaskNetwork().
- _AdslGetPhoneCover($ArgNum, $ArgInfType=$_AllInfoPhoneCover).
- _AdslGetPhoneMobileInfo($ArgNum, $ArgInfType=$_AllInfoMobilePhone).
- _AdslGetProxy().
- _AdslGetPublicIp().
- _AdslIsLocalIpEnable($ArgIp).
- _AdslSaveLanFileConfig($ArgFileName, $ArgFilePath=@ScriptDir).
- _AdslSetDns($ArgLan, $ArgType=$_StaticDnsConfig, $ArgSysReset=$_RestartValParam, $ArgPrimaryDNS="", $ArgSecondaryDNs="").
- _AdslSetLanConfig($ArgLan, $ArgType=$_StaticLanConfig, $ArgSysReset=$_RestartValParam, $ArgIp="192.168.1.2", $ArgMask="255.255.255.0", $ArgGateway="192.168.1.1", $ArgMetric=1).
- _AdslSetLanFileConfig($ArgFileName, $ArgFilePath=@ScriptDir).
- _AdslSetSpeedAcelerator($ArgConnType=$_AdslAceleratorSpeed, $ArgTRestart=$_NotRestartValParam).
Funciones internas:
- _Adsl_CheckIp($ArgIP, $ArgType=$_PublicIpChk).
- _Adsl_ShockConnSV($ArgHost, $ArgPort=80, $ArgBloqData=1, $ArgConnPath="", $ArgMethod=$_GetSvConnMethod, $ArgHAcc="", $ArgHRef="", $ArgHAccLang="", $ArgHUSAg="", $ArgHCTType="", $ArgHAccEnc="", $ArgHHost="", $ArgHCTLength="", $ArgHConn="", $ArgHCachCTRL="", $ArgHCK="", $ArgParam="", $ArgValParam="", $ArgExtraSTR="").
- _Adsl_WebCodeStrip($ArgDoc, $ArgHtmlStrip=$_DelHtmlStrip, $ArgJsStrip=$_DelJsStrip, $ArgCssStrip=$_DelCssStrip, $ArgCommStrip=$_DelCommStrip, $ArgHeadStrip=$_DelHdStrip, $ArgEspCharMod=$_DelModChStrip, $ArgMarkIns="", $ArgSubStr="", $ArgStrUpper=$_NotUppStr, $ArgNumMarkIns=$_AllMarkInsNumber).
Leyenda:
- (valor): Delante de la descripción del parámetro de una función, indican el valor por defecto de este.
"" indica un valor nulo.
- OK: En las funciones en las que el valor satisfactorio de retorno no sea un valor dígito (0-9), indica que el valor de retorno descrito es el de ejecución correcta.
- |: Indica posibles valores que admite un parámetro, cuando este admite más de un valor posible.
- ({ESPECIAL}): Indica que un valor de retorno de una función es especial.
- <_Adsl>: Prefijo del nombre de las funciones de usuario de la librería.
- <_Adsl_>: Prefijo de las funciones internas de la librería.
----------
#CE
;Includes:
#Include-once
;Enumeraciones:
Global Enum $_AllInfoPhoneCover, $_StateInfoPhoneCover, $_ProvinceInfoPhoneCover, $_DemarcationInfoPhoneCover, $_StationInfoPhoneCover ;Enum de "_AdslGetPhoneCover() -> $ArgInfType".
Global Enum $_AllInfoIpLocation, $_ContinentInfoIpLocation, $_CountryInfoIpLocation, $_RegionInfoIpLocation, $_CityInfoIpLocation, $_LongitudeInfoIpLocation, $_LatitudeInfoIpLocation ;Enum de "_AdslGetIpLocation() -> $ArgInfType".
Global Enum $_AllInfoMobilePhone, $_ACodeInfoMobilePhone, $_TechnologyInfoMobilePhone, $_StateInfoMobilePhone, $_AssignDateInfoMobilePhone, $_OperatorInfoMobilePhone, $_TradeNameInfoMobilePhone ;Enum de "_AdslGetPhoneMobileInfo() -> $ArgInfType".
Global Enum $_AllInfoIpIsp, $_NameInfoIpIsp, $_DescrInfoIpIsp ;Enum de "_AdslGetIpIsp() -> $ArgInfType".
Global Enum $_AdslAceleratorSpeed, $_ModemAceleratorSpeed ;Enum de "_AdslSetSpeedAcelerator() -> $ArgConnType".
Global Enum $_NotRestartValParam, $_RestartValParam ;Enum de "_AdslSetSpeedAcelerator() -> $ArgTRestart", "_AdslDeleteSpeedAcelerator() -> $ArgTRestart" y "_AdslSetLanConfig() -> $ArgSysReset".
Global Enum $_AllInfoDnsConfig, $_PrimaryInfoDnsConfig, $_SecondaryInfoDnsConfig ;Enum de "_AdslGetDns() -> $ArgDNS".
Global Enum $_StaticLanConfig, $_DhcpLanConfig ;Enum de "_AdslSetLanConfig() -> $ArgType".
Global Enum $_StaticDnsConfig, $_DhcpDnsConfig ;Enum de "_AdslSetDns() -> $ArgType".
Global Enum $_DisableWinFirewallMode, $_EnableWinFirewallMode ;Enum del parámetro "mode" del firewall de Windows.
Global Enum $_DisableWinFirewallExcep, $_EnableWinFirewallExcep ;Enum del parámetro "exceptions" del firewall de Windows.
Global Enum $_CurrentWinFirewallProfile, $_DomainWinFirewallProfile, $_StandardWinFirewallProfile, $_AllWinFirewallProfile ;Enum del parámetro "profile" del firewall de Windows.
Global Enum $_TcpWinFirewallProtocol, $_UdpWinFirewallProtocol, $_AllWinFirewallProtocol ;Enum del parámetro "protocol" del firewall de Windows.
Global Enum $_SubnetWinFirewallScope, $_AllowedTraficWinFirewallScope, $_AllWinFirewallScope ;Enum del parámetro "scope" del firewall de Windows.
Global Enum $_FileAndPrintWinFirewallService, $_RemoteAdminWinFirewallService, $_RemoteDesktopWinFirewallService, $_UpnpWinFirewallService, $_AllWinFirewallService ;Enum de "_AdslSetFirewallService() -> $ArgServiceType".
Global Enum $_NotPackWinFirewallLogging, $_PackWinFirewallLogging ;Enum de "_AdslSetFirewallLogging() -> $ArgDpPack".
Global Enum $_NotConnWinFirewallLogging, $_ConnWinFirewallLogging ;Enum de "_AdslSetFirewallLogging() -> $ArgConns".
Global Enum $_AllWinFirewallIcmp, $_BigPackWinFirewallIcmp=2, $_NotDstWinFirewallIcmp, $_OutPackWinFirewallIcmp, $_RdrWinFirewallIcmp, $_InRequestWinFirewallIcmp=8, $_EnrInRequestWinFirewallIcmp, $_OutTimeWinFirewallIcmp=11, $_OutBadParamWinFirewallIcmp, $_OutMarkOurWinFirewallIcmp, $_InMaskWinFirewallIcmp=17 ;Enum de "_AdslSetFirewallICMP() -> $ArgType".
Global Enum $_AllWinFirewallShow, $_AllowedProgramWinFirewallShow, $_CurrentWinFirewallShow, $_IcmpWinFirewallShow, $_RegWinFirewallShow, $_MultiCastBroadCastWinFirewallShow, $_NotifyWinFirewallShow, $_ModeWinFirewallShow, $_AllowedPortWinFirewallShow, $_ServiceWinFirewallShow, $_StatusWinFirewallShow ;Enum de "_AdslShowFirewall() -> $ArgInf".
Global Enum $_DownloadSpeedKBYTEPerSEC=0, $_DownloadSpeedKBITPerSEC=1, $_DownloadSpeedMBYTEPerSEC=2 ;Enum de "_AdslGetDownloadSpeed() -> $ArgMeasure".
Global Enum $_PublicIpChk, $_PrivateIpChk ;Enum de "_Adsl_CheckIp() -> $ArgType".
Global Enum $_GetSvConnMethod, $_PostSvConnMethod ;Enum de "_Adsl_ShockConnSV() -> $ArgMethod".
Global Enum $_NotDelHtmlStrip, $_DelHtmlStrip ;Enum de "_Adsl_WebCodeStrip() -> $ArgHtmlStrip".
Global Enum $_NotDelJsStrip, $_DelJsStrip ;Enum de "_Adsl_WebCodeStrip() -> $ArgJsStrip".
Global Enum $_NotDelCssStrip, $_DelCssStrip ;Enum de "_Adsl_WebCodeStrip() -> $ArgCssStrip".
Global Enum $_NotDelCommStrip, $_DelCommStrip ;Enum de "_Adsl_WebCodeStrip() -> $ArgCommStrip".
Global Enum $_NotDelHdStrip, $_DelHdStrip ;Enum de "_Adsl_WebCodeStrip() -> $ArgHeadStrip".
Global Enum $_NotDelModChStrip, $_DelModChStrip ;Enum de "_Adsl_WebCodeStrip() -> $ArgEspCharMod".
Global Enum $_NotUppStr, $_UppStr ;Enum de "_Adsl_WebCodeStrip() -> $ArgStrUpper".
Global Enum $_AllMarkInsNumber ;Enum de "_Adsl_WebCodeStrip() -> $ArgNumMarkIns".
;Funciones de usuario:
Func _AdslDeleteSpeedAcelerator($ArgTRestart=$_NotRestartValParam)
#CS
----------
Descripción:
- Restaura a su configuración por defecto la velocidad de la conexión a internet.
El valor por defecto es el que ajusta Windows durante su instalación.
Se restaura la velocidad de conexiones ADSL y módem.
Parámetro(s):
- $ArgTRestart: ($_NotRestartValParam) Tiempo de espera para el reinicio del equipo.
"$_NotRestartValParam" no reinicia el equipo.
Este valor debe ser expresado en milisegundos.
Valor(es) de retorno:
- 1: La velocidad de la conexión a internet se restauró correctamente.
- 0: Ocurrió un error al restaurar la velocidad de la conexión a internet.
Categoría: Configuración de red.
----------
#CE
Local $RegDelVal ;Eliminar valor del regedit.
Local $SysRestart ;Reiniciar el sistema.
If (($ArgTRestart=="") Or (StringIsDigit($ArgTRestart)=0 Or Number($ArgTRestart)<$_NotRestartValParam)) Then Return 0 ;Si "$ArgTRestart" no recibe un valor esperado - Devuelve código de error (0).
$RegDelVal=RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "MaxConnectionsPerServer") ;Elimina valor del regedit.
If ($RegDelVal=0 Or $RegDelVal=2) Then Return 0 ;Si ocurrió un error al eliminar el valor del regedit - Devuelve código de error (0).
$RegDelVal=RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "MaxConnectionsPer1_0Server") ;Elimina valor del regedit.
If ($RegDelVal=0 Or $RegDelVal=2) Then Return 0 ;Si ocurrió un error al eliminar el valor del regedit - Devuelve código de error (0).
Sleep($ArgTRestart) ;Espera "$ArgTRestart" milisegundos para reiniciar el sistema.
If $ArgTRestart>$_NotRestartValParam Then ;Reinicio del sistema.
$SysRestart=ShutDown(22) ;Fuerza el reinicio del sistema.
If $SysRestart=0 Then Return 0 ;Si ocurrió un error al reiniciar el sistema - Devuelve código de error (0).
EndIf ;End -> Reinicio del sistema.
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallAddAllowedProgram($ArgPathFile, $ArgName, $ArgMode=$_DisableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="")
#CS
----------
Descripción:
- Agrega un programa a las excepciones del firewall de Windows.
- El valor de $ArgScope debe ser "$_AllWinFirewallScope" para especificar direcciones.
- Si $ArgPathFile está agregado como excepción en el firewall y esta está desactivada, la función devolverá "1".
Parámetro(s):
- $ArgPathFile: Ruta completa del ejecutable del programa.
- $ArgName: Nombre del programa.
- $ArgMode: ($_DisableWinFirewallMode) Modo de programa:
- "": Omite este parámetro.
- $_DisableWinFirewallMode=No permitir a través del firewall.
- $_EnableWinFirewallMode=Permitir a través del firewall.
- $ArgScope: ($_AllWinFirewallScope) Ámbito del programa:
- "": Omite este parámetro.
- $_SubnetWinFirewallScope=Red local.
- $_AllowedTraficWinFirewallScope=Tráfico especificado a través del firewall.
- $_AllWinFirewallScope=Todos.
- $ArgProfile: (_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Domain.
- $_StandardWinFirewallProfile=Standard.
- $_AllWinFirewallProfile=Todos.
- $ArgAddr: ("") Direcciones de ámbito personalizado.
- "": Omite este parámetro.
Valor(es) de retorno:
- 1: El programa se agregó correctamente a las excepciones.
- 0: Ocurrió un error al agregar el programa a las excepciones.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall show allowedprogram" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If (($ArgPathFile=="" Or FileExists($ArgPathFile)=0) Or ($ArgName=="") Or (($ArgMode<>"") And ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgScope<>"") And ((StringIsDigit($ArgScope)=0) Or (Number($ArgScope)<>$_SubnetWinFirewallScope And Number($ArgScope)<>$_AllowedTraficWinFirewallScope And Number($ArgScope)<>$_AllWinFirewallScope))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgPathFile", "$ArgName", "$ArgMode", "$ArgScope" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Consulta los programas agregados a las excepciones del firewall.
If StringInStr($ExCons, $ArgPathFile, 0, 1, 1)<>0 Then Return 0 ;Si "$ArgPathFile" está agregado en las excepciones del firewall - Devuelve código de error (0).
$CommCMD="netsh firewall add allowedprogram" ;Parte fija del comando a enviar a la línea de comandos del sistema.
$CommCMD&=" program="""&$ArgPathFile&"""" ;Añade el programa, al comando a enviar a la línea de comandos del sistema.
$CommCMD&=" name="""&$ArgName&"""" ;Añade el nombre del programa, al comando a enviar a la línea de comandos del sistema.
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "$_DisableWinFirewallMode".
$CommCMD&=" mode=""disable""" ;Añade el modo de programa, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "$_EnableWinFirewallMode".
$CommCMD&=" mode=""enable""" ;Añade el modo de programa, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgScope)=$_SubnetWinFirewallScope Then ;Si "$ArgScope" vale "$_SubnetWinFirewallScope".
$CommCMD&=" scope=""subnet""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllowedTraficWinFirewallScope Then ;Si "$ArgScope" vale "$_AllowedTraficWinFirewallScope".
$CommCMD&=" scope=""custom""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllWinFirewallScope Then ;Si "$ArgScope" vale "$_AllWinFirewallScope".
$CommCMD&=" scope=""all""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgScope" vale "$_SubnetWinFirewallScope".
If $ArgAddr<>"" Then ;Si "$ArgAddr" recibe un valor.
$CommCMD&=" addresses="""&$ArgAddr&"""" ;Añade direcciones, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgAddr" recibe un valor.
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$ExCons=_Adsl_ExConsole($CommCMD) ;Agrega el programa, a las excepciones del firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al agregar el programa a las excepciones del firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallAddPort($ArgPort, $ArgName, $ArgLan="", $ArgProt=$_AllWinFirewallProtocol, $ArgMode=$_EnableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="")
#CS
----------
Descripción:
- Abre un puerto en el firewall de Windows.
- Es posible que $ArgProfile y $ArgLan no puedan especificarse conjuntamente.
- Es posible que $ArgScope y $ArgLan no puedan especificarse conjuntamente.
- El valor de $ArgScope debe ser "$_AllWinFirewallScope" para especificar direcciones.
- Pueden especificarse varias direcciones en $ArgAddr, separadas por comas (,).
Parámetro(s):
- $ArgPort: Número de puerto.
El puerto debe ser un valor entre "1" y "65535".
- $ArgName: Nombre de puerto.
- $ArgLan: ("") Nombre del adaptador de red.
- "": Omite este parámetro.
- $ArgProt: ($_AllWinFirewallProtocol) Protocolo de puerto:
- $_TcpWinFirewallProtocol=TCP.
- $_UdpWinFirewallProtocol=UDP.
- $_AllWinFirewallProtocol=Todos.
- $ArgMode: ($_EnableWinFirewallMode) Modo de puerto:
- "": Omite este parámetro.
- $_DisableWinFirewallMode=No permitir a través del firewall.
- $_EnableWinFirewallMode=Permitir a través del firewall.
- $ArgScope: ($_AllWinFirewallScope) Ámbito de puerto:
- "": Omite este parámetro.
- $_SubnetWinFirewallScope=Red local.
- $_AllowedTraficWinFirewallScope=Tráfico especificado a través del firewall.
- $_AllWinFirewallScope=Todos.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estándar.
- $_AllWinFirewallProfile=Todos.
- $ArgAddr: ("") Direcciones de ámbito personalizado.
- "": Omite este parámetro.
Valor(es de retorno:
- 1: El puerto se abrió correctamente.
- 0: Ocurrió un error al abrir el puerto.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall show portopening" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((($ArgPort=="") Or (Number($ArgPort)<1 Or Number($ArgPort)>65535)) Or ($ArgName=="") Or ((StringIsDigit($ArgProt)=0) Or (Number($ArgProt)<>$_TcpWinFirewallProtocol And Number($ArgProt)<>$_UdpWinFirewallProtocol And Number($ArgProt)<>$_AllWinFirewallProtocol)) Or (($ArgMode<>"") And ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgScope<>"") And ((StringIsDigit($ArgScope)=0) Or (Number($ArgScope)<>$_SubnetWinFirewallScope And Number($ArgScope)<>$_AllowedTraficWinFirewallScope And Number($ArgScope)<>$_AllWinFirewallScope))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgPort", "$ArgName", "$ArgProt", "$ArgMode", "$ArgScope" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Consulta los puertos abiertos en el firewall.
If StringInStr($ExCons, $ArgPort, 0, 1, 1)<>0 Then Return 0 ;Si "$ArgPort" está abierto en el firewall - Devuelve código de error (0).
$CommCMD="netsh firewall add portopening" ;Parte fija del comando a enviar a la línea de comandos del sistema.
$CommCMD&=" port="""&$ArgPort&"""" ;Añade el puerto, al comando a enviar a la línea de comandos del sistema.
$CommCMD&=" name="""&$ArgName&"""" ;Añade el nombre del puerto, al comando a enviar a la línea de comandos del sistema.
If Number($ArgProt)=$_TcpWinFirewallProtocol Then ;Si "$ArgProt" vale "$_TcpWinFirewallProtocol".
$CommCMD&=" protocol=""tcp""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProt)=$_UdpWinFirewallProtocol Then ;Si "$ArgProt" vale "$_UdpWinFirewallProtocol".
$CommCMD&=" protocol=""udp""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProt)=$_AllWinFirewallProtocol Then ;Si "$ArgProt" vale "$_AllWinFirewallProtocol".
$CommCMD&=" protocol=""all""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProt" vale "$_TcpWinFirewallProtocol".
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "0".
$CommCMD&=" mode=""disable""" ;Añade el modo de puerto, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "1".
$CommCMD&=" mode=""enable""" ;Añade el modo de puerto, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgScope)=$_SubnetWinFirewallScope Then ;Si "$ArgScope" vale "$_SubnetWinFirewallScope".
$CommCMD&=" scope=""subnet""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllowedTraficWinFirewallScope Then ;Si "$ArgScope" vale "$_AllowedTraficWinFirewallScope".
$CommCMD&=" scope=""custom""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllWinFirewallScope Then ;Si "$ArgScope" vale "$_AllWinFirewallScope".
$CommCMD&=" scope=""all""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgScope" vale "$_SubnetWinFirewallScope".
If $ArgAddr<>"" Then ;Si "$ArgAddr" recibe un valor.
$CommCMD&=" addresses="""&$ArgAddr&"""" ;Añade direcciones, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgAddr" recibe un valor.
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
If $ArgLan<>"" Then ;Si "$ArgLan" recibe un valor.
$CommCMD&=" interface="""&$ArgLan&"""" ;Añade el nombre del adaptador de red, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgLan" recibe un valor.
$ExCons=_Adsl_ExConsole($CommCMD) ;Abre el puerto, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al abrir el puerto en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallDelAllowedProgram($ArgPathFile, $ArgProfile=3)
#CS
----------
Descripción:
- Elimina la excepción de un programa en el firewall de Windows.
- Si $ArgPathFile está agregado como excepción en el firewall y esta está desactivada, la función devolverá "1".
Parámetro(s):
- $ArgPathFile: Ruta completa del ejecutable del programa.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estándar.
- $_AllWinFirewallProfile=Todos.
Valor(es) de retorno:
- 1: La excepción del programa se eliminó correctamente.
- 0: Ocurrió un error al eliminar la excepción del programa.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall show allowedprogram" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If (($ArgPathFile=="" Or FileExists($ArgPathFile)=0) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgPathFile" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Consulta los programas agregados a las excepciones del firewall.
If StringInStr($ExCons, $ArgPathFile, 0, 1, 1)=0 Then Return 0 ;Si "$ArgPathFile" no está agregado en las excepciones del firewall - Devuelve código de error (0).
$CommCMD="netsh firewall delete allowedprogram" ;Parte fija del comando a enviar a la línea de comandos del sistema.
$CommCMD&=" program="""&$ArgPathFile&"""" ;Añade el programa, al comando a enviar a la línea de comandos del sistema.
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$ExCons=_Adsl_ExConsole($CommCMD) ;Elimina la excepción del programa, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al eliminar la excepción del programa en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallDelPort($ArgPort, $ArgLan="", $ArgProt=$_AllWinFirewallProtocol, $ArgProfile=$_AllWinFirewallProfile)
#CS
----------
Descripción:
- Elimina un puerto del firewall de Windows.
- Es posible que $ArgProfile y $ArgLan no puedan especificarse conjuntamente.
Parámetro(s):
- $ArgPort: Número de puerto.
El puerto debe ser un valor entre "1" y "65535".
- $ArgLan: ("") Nombre del adaptador de red.
- "": Omite este parámetro.
- $ArgProt: ($_AllWinFirewallProtocol) Protocolo de puerto:
- $_TcpWinFirewallProtocol=TCP.
- $_UdpWinFirewallProtocol=UDP.
- $_AllWinFirewallProtocol=Todos.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estándar.
- $_AllWinFirewallProfile=Todos.
Valor(es de retorno:
- 1: El puerto se eliminó correctamente.
- 0: Ocurrió un error al eliminar el puerto.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall show portopening" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((($ArgPort=="") Or (Number($ArgPort)<1 Or Number($ArgPort)>65535)) Or ((StringIsDigit($ArgProt)=0) Or (Number($ArgProt)<>$_TcpWinFirewallProtocol And Number($ArgProt)<>$_UdpWinFirewallProtocol And Number($ArgProt)<>$_AllWinFirewallProtocol)) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgPort", "$ArgProt" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Consulta los puertos abiertos en el firewall.
If StringInStr($ExCons, $ArgPort, 0, 1, 1)=0 Then Return 0 ;Si "$ArgPort" no está abierto en el firewall - Devuelve código de error (0).
$CommCMD="netsh firewall delete portopening" ;Parte fija del comando a enviar a la línea de comandos del sistema.
$CommCMD&=" port="""&$ArgPort&"""" ;Añade el puerto, al comando a enviar a la línea de comandos del sistema.
If Number($ArgProt)=$_TcpWinFirewallProtocol Then ;Si "$ArgProt" vale "$_TcpWinFirewallProtocol".
$CommCMD&=" protocol=""tcp""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProt)=$_UdpWinFirewallProtocol Then ;Si "$ArgProt" vale "$_UdpWinFirewallProtocol".
$CommCMD&=" protocol=""udp""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProt)=$_AllWinFirewallProtocol Then ;Si "$ArgProt" vale "$_AllWinFirewallProtocol".
$CommCMD&=" protocol=""all""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProt" vale "$_TcpWinFirewallProtocol".
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
If $ArgLan<>"" Then ;Si "$ArgLan" recibe un valor.
$CommCMD&=" interface="""&$ArgLan&"""" ;Añade el nombre del adaptador de red, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgLan" recibe un valor.
$ExCons=_Adsl_ExConsole($CommCMD) ;Elimina el puerto, del firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al eliminar el puerto del firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetAllowedProgram($ArgPathFile, $ArgName="", $ArgMode=$_DisableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="")
#CS
----------
Descripción:
- Modifica la excepción de un programa en el firewall de Windows.
- El valor de $ArgScope debe ser "$_AllWinFirewallScope" para especificar direcciones.
- Si $ArgPathFile está agregado como excepción en el firewall y esta está desactivada, la función devolverá "1".
Parámetro(s):
- $ArgPathFile: Ruta completa del ejecutable del programa.
- $ArgName: ("") Nombre del programa:
- "": Omite este parámetro.
- $ArgMode: ($_DisableWinFirewallMode) Modo de programa:
- "": Omite este parámetro.
- $_DisableWinFirewallMode=No permitir a través del firewall.
- $_EnableWinFirewallMode=Permitir a través del firewall.
- $ArgScope: ($_AllWinFirewallScope) Ámbito del programa:
- "": Omite este parámetro.
- $_SubnetWinFirewallScope=Red local.
- $_AllowedTraficWinFirewallScope=Tráfico especificado a través del firewall.
- $_AllWinFirewallScope=Todos.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Dominio.
- $_DomainWinFirewallProfile=Estándar.
- $_StandardWinFirewallProfile=Actual.
- $_AllWinFirewallProfile=Todos.
- $ArgAddr: ("") Direcciones de ámbito personalizado.
- "": Omite este parámetro.
Valor(es) de retorno:
- 1: La excepción del programa se modificó correctamente.
- 0: Ocurrió un error al modificar la excepción del programa.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall show allowedprogram" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If (($ArgPathFile=="" Or FileExists($ArgPathFile)=0) Or (($ArgMode<>"") And ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgScope<>"") And ((StringIsDigit($ArgScope)=0) Or (Number($ArgScope)<>$_SubnetWinFirewallScope And Number($ArgScope)<>$_AllowedTraficWinFirewallScope And Number($ArgScope)<>$_AllWinFirewallScope))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgPathFile", "$ArgMode", "$ArgScope" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Consulta los programas agregados a las excepciones del firewall.
If StringInStr($ExCons, $ArgPathFile, 0, 1, 1)=0 Then Return 0 ;Si "$ArgPathFile" no está agregado en las excepciones del firewall - Devuelve código de error (0).
$CommCMD="netsh firewall set allowedprogram" ;Parte fija del comando a enviar a la línea de comandos del sistema.
$CommCMD&=" program="""&$ArgPathFile&"""" ;Añade el programa, al comando a enviar a la línea de comandos del sistema.
If $ArgName<>"" Then ;Si "$ArgName" recibe un valor.
$CommCMD&=" name="""&$ArgName&"""" ;Añade el nombre del programa, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgName" recibe un valor.
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "$_DisableWinFirewallMode".
$CommCMD&=" mode=""disable""" ;Añade el modo de programa, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "$_EnableWinFirewallMode".
$CommCMD&=" mode=""enable""" ;Añade el modo de programa, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgScope)=$_SubnetWinFirewallScope Then ;Si "$ArgScope" vale "$_SubnetWinFirewallScope".
$CommCMD&=" scope=""subnet""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllowedTraficWinFirewallScope Then ;Si "$ArgScope" vale "$_AllowedTraficWinFirewallScope".
$CommCMD&=" scope=""custom""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllWinFirewallScope Then ;Si "$ArgScope" vale "$_AllWinFirewallScope".
$CommCMD&=" scope=""all""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgScope" vale "$_SubnetWinFirewallScope".
If $ArgAddr<>"" Then ;Si "$ArgAddr" recibe un valor.
$CommCMD&=" addresses="""&$ArgAddr&"""" ;Añade direcciones, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgAddr" recibe un valor.
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "3".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$ExCons=_Adsl_ExConsole($CommCMD) ;Modifica la excepción del programa, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al modificar la excepción del programa en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetICMP($ArgType=$_AllWinFirewallIcmp, $ArgMode=$_EnableWinFirewallMode, $ArgProfile=$_AllWinFirewallProfile, $ArgLan="")
#CS
----------
Descripción:
- Ajusta la configuración ICMP del firewall de Windows.
- Es posible que $ArgProfile y $ArgLan no puedan especificarse conjuntamente.
- Es posible que el tipo "$_NotDstWinFirewallIcmp" de $ArgType y $ArgLan no puedan especificarse conjuntamente.
Parámetro(s):
- $ArgType: ($_AllWinFirewallIcmp) Tipo de ICMP:
- $_AllWinFirewallIcmp=Todos.
- $_BigPackWinFirewallIcmp=Permitir paquete saliente demasiado grande.
- $_NotDstWinFirewallIcmp=Permitir destino saliente inalcanzable.
- $_OutPackWinFirewallIcmp=Permitir paquete de control de flujo saliente.
- $_RdrWinFirewallIcmp=Permitir redirección.
- $_InRequestWinFirewallIcmp=Permitir solicitud de eco entrante.
- $_EnrInRequestWinFirewallIcmp=Permitir solicitud de enrutador entrante.
- $_OutTimeWinFirewallIcmp=Permitir tiempo saliente superado.
- $_OutBadParamWinFirewallIcmp=Permitir problema de parámetro saliente.
- $_OutMarkOurWinFirewallIcmp=Permitir solicitud de marca de hora entrante.
- $_InMaskWinFirewallIcmp=Permitir petición de máscara entrante.
- $ArgMode: ($_EnableWinFirewallMode) Modo de ICMP:
- "": Omite este parámetro.
- $_DisableWinFirewallMode=No permitir.
- $_EnableWinFirewallMode=Permitir.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estándar.
- $_AllWinFirewallProfile=Todos.
- $ArgLan: ("") Nombre del adaptador de red.
- "": Omite el parámetro.
Valor(es) de retorno:
- 1: La configuración ICMP se ajustó correctamente.
- 0: Ocurrió un error al ajustar la configuración ICMP.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall set icmpsetting" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((($ArgType=="") Or ((StringIsDigit($ArgType)=0) Or (Number($ArgType)<>$_AllWinFirewallIcmp And Number($ArgType)<>$_BigPackWinFirewallIcmp And Number($ArgType)<>$_NotDstWinFirewallIcmp And Number($ArgType)<>$_OutPackWinFirewallIcmp And Number($ArgType)<>$_RdrWinFirewallIcmp And Number($ArgType)<>$_InRequestWinFirewallIcmp And Number($ArgType)<>$_EnrInRequestWinFirewallIcmp And Number($ArgType)<>$_OutTimeWinFirewallIcmp And Number($ArgType)<>$_OutBadParamWinFirewallIcmp And Number($ArgType)<>$_OutMarkOurWinFirewallIcmp And Number($ArgType)<>$_InMaskWinFirewallIcmp))) Or (($ArgMode<>"") And ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgType", "$ArgMode" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
If Number($ArgType)=$_AllWinFirewallIcmp Then ;Si "$ArgType" vale "$_AllWinFirewallIcmp".
$ArgType="all" ;Ajustar "$ArgType" a "todos".
EndIf ;End -> Si "$ArgType" vale "$_AllWinFirewallIcmp".
$CommCMD&=" type="""&$ArgType&"""" ;Añade el tipo de ICMP, al comando a enviar a la línea de comandos del sistema.
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "$_DisableWinFirewallMode".
$CommCMD&=" mode=""disable""" ;Añade el modo de ICMP, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "$_EnableWinFirewallMode".
$CommCMD&=" mode=""enable""" ;Añade el modo de ICMP, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
If $ArgLan<>"" Then ;Si "$ArgLan" recibe un valor.
$CommCMD&=" interface="""&$ArgLan&"""" ;Añade el nombre del adaptador de red, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgLan" recibe un valor.
$ExCons=_Adsl_ExConsole($CommCMD) ;Modifica la configuración ICMP, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al modificar la configuración ICMP en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetLogging($ArgPathFile="", $ArgFileSize=32767, $ArgDpPack=1, $ArgConns=1)
#CS
----------
Descripción:
- Ajusta la configuración de registro del firewall de Windows.
- Debe especificarse al menos un parámetro.
Parámetro(s):
- $ArgPathFile: ("") Ruta completa del archivo de registro.
- "": Omite este parámetro.
- $ArgFileSize: (32767) Tamaño máximo del archivo de registro en kilobytes.
- "": Omite este parámetro.
- $ArgDpPack: ($_PackWinFirewallLogging ) Registro de paquetes eliminados:
- "": Omite este parámetro.
- $_NotPackWinFirewallLogging=No registrar.
- $_PackWinFirewallLogging=Registrar.
- $ArgConns: ($_ConnWinFirewallLogging) Registro de conexiones correctas:
- "": Omite este parámetro.
- $_NotConnWinFirewallLogging=No registrar.
- $_NotConnWinFirewallLogging=Registrar.
Valor(es) de retorno:
- 1: La configuración de registro del firewall se ajustó correctamente.
- 0: Ocurrió un error al ajustar la configuración de registro del firewall.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall set logging" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If (($ArgPathFile=="" And $ArgFileSize=="" And $ArgDpPack=="" And $ArgConns=="") Or (($ArgFileSize<>"") And ((StringIsDigit($ArgFileSize)=0) Or (Number($ArgFileSize)<1 Or Number($ArgFileSize)>32767))) Or (($ArgDpPack<>"") And ((StringIsDigit($ArgDpPack)=0) Or (Number($ArgDpPack)<>$_NotPackWinFirewallLogging And Number($ArgDpPack)<>$_PackWinFirewallLogging))) Or (($ArgConns<>"") And ((StringIsDigit($ArgConns)=0) Or (Number($ArgConns)<>$_NotConnWinFirewallLogging And Number($ArgConns)<>$_ConnWinFirewallLogging)))) Then Return 0 ;Si "$ArgPathFile", "$ArgFileSize", "$ArgDpPack" o "$ArgConns" no reciben un valor esperado - Devuelve código de error (0).
If $ArgPathFile<>"" Then ;Si "$ArgPathFile" recibe un valor.
$CommCMD&=" filelocation="""&$ArgPathFile&"""" ;Añade el archivo de registro, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgPathFile" recibe un valor.
If $ArgFileSize<>"" Then ;Si "$ArgFileSize" recibe un valor.
$CommCMD&=" maxfilesize="""&$ArgFileSize&"""" ;Añade el tamaño del archivo de registro, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgFileSize" recibe un valor.
If Number($ArgDpPack)=$_NotPackWinFirewallLogging Then ;Si "$ArgDpPack" vale "$_NotPackWinFirewallLogging".
$CommCMD&=" droppedpackets=""disable""" ;Añade el registro de paquetes eliminados, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgDpPack)=$_PackWinFirewallLogging Then ;Si "$ArgDpPack" vale "$_PackWinFirewallLogging".
$CommCMD&=" droppedpackets=""enable""" ;Añade el registro de paquetes eliminados, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgDpPack" vale "$_NotPackWinFirewallLogging".
If Number($ArgConns)=$_NotConnWinFirewallLogging Then ;Si "$ArgConns" vale "$_NotConnWinFirewallLogging".
$CommCMD&=" connections=""disable""" ;Añade el registro de conexiones correctas, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgConns)=$_ConnWinFirewallLogging Then ;Si "$ArgConns" vale "$_ConnWinFirewallLogging".
$CommCMD&=" connections=""enable""" ;Añade el registro de conexiones correctas, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgConns" vale "$_NotConnWinFirewallLogging".
$ExCons=_Adsl_ExConsole($CommCMD) ;Ajusta la configuración de registro del firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al ajustar la configuración de registro del firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetMultiCastBroadCast($ArgMode=$_EnableWinFirewallMode, $ArgProfile=$_AllWinFirewallProfile)
#CS
----------
Descripción:
- Ajusta la configuración de respuesta de multidifusión o difusión del firewall de Windows.
Parámetro(s):
- $ArgMode: ($_DisableWinFirewallMode) Modo de respuesta de multidifusión o difusión:
- $_DisableWinFirewallMode=No permitir.
- $_EnableWinFirewallMode=Permitir.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estándar.
- $_AllWinFirewallProfile=Todos.
Valor(es) de retorno:
- 1: La configuración de la respuesta de multidifusión o difusión se ajustó correctamente.
- 0: Ocurrió un error al ajustar la configuración de la respuesta de multidifusión o difusión.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall set multicastbroadcastresponse" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((($ArgMode=="") Or ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgMode" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "$_DisableWinFirewallMode".
$CommCMD&=" mode=""disable""" ;Añade el modo de respuesta de multidifusión o difusión, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "$_EnableWinFirewallMode".
$CommCMD&=" mode=""enable""" ;Añade el modo de respuesta de multidifusión o difusión, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$ExCons=_Adsl_ExConsole($CommCMD) ;Modifica la configuración de la respuesta de multidifusión o difusión, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al modificar la configuración de la respuesta de multidifusión o difusión en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetNotify($ArgMode=$_EnableWinFirewallMode, $ArgProfile=$_AllWinFirewallProfile)
#CS
----------
Descripción:
- Ajusta la configuración de las notificaciones del firewall de Windows.
Parámetro(s):
- $ArgMode: ($_EnableWinFirewallMode) Modo de notificación:
- $_DisableWinFirewallMode=No permitir.
- $_EnableWinFirewallMode=Permitir.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estándar.
- $_AllWinFirewallProfile=Todos.
Valor(es) de retorno:
- 1: La configuración de las notificaciones se ajustó correctamente.
- 0: Ocurrió un error al ajustar la configuración de las notificaciones.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall set notifications" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((($ArgMode=="") Or ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgMode" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "$_DisableWinFirewallMode".
$CommCMD&=" mode=""disable""" ;Añade el modo de notificación, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "$_EnableWinFirewallMode".
$CommCMD&=" mode=""enable""" ;Añade el modo de notificación, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$ExCons=_Adsl_ExConsole($CommCMD) ;Modifica la configuración de las notificaciones, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al modificar la configuración de las notificaciones en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetOpMode($ArgLan="", $ArgMode=$_EnableWinFirewallMode, $ArgExcep=$_EnableWinFirewallExcep, $ArgProfile=$_AllWinFirewallProfile)
#CS
----------
Descripción:
- Establece la configuración funcional del servidor de seguridad.
- Es posible que $ArgProfile y $ArgLan no puedan especificarse conjuntamente.
- Es posible que $ArgExcep y $ArgLan no puedan especificarse conjuntamente.
Parámetro(s):
- $ArgLan: Nombre del adaptador de red.
- "": Omite el parámetro.
- $ArgMODE: ($_EnableWinFirewallMode) Modo funcional:
- $_DisableWinFirewallMode=Desactivado.
- $_EnableWinFirewallMode=Activado.
- $ArgExcep: ($_EnableWinFirewallExcep) Modo de excepciones:
- "": Omite el parámetro.
- $_DisableWinFirewallExcep=Desactivadas.
- $_EnableWinFirewallExcep=Activadas.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil de configuración:
- "": Omite el parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estandar.
- $_AllWinFirewallProfile=Todos.
Valor(es) de retorno:
- 1: Se ajustó correctamente el estado del firewall.
- 0: Ocurrió un error al ajustar el estado del firewall.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall set opmode" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode) Or (($ArgExcep<>"") And (Number($ArgExcep)<>$_DisableWinFirewallExcep And Number($ArgExcep)<>$_EnableWinFirewallExcep)) Or (($ArgProfile<>"") And (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile))) Then Return 0 ;Si "$ArgMode" no recibe un valor esperado - Devuelve código de error (0).
If Number($ArgMode)=0 Then ;Si "$ArgMode" vale "0".
$CommCMD&=" mode=""disable""" ;Añade el modo funcional, a la configuración funcional del servidor de seguridad.
ElseIf Number($ArgMode)=1 Then ;Si "$ArgMode" vale "1".
$CommCMD&=" mode=""enable""" ;Añade el modo funcional, a la configuración funcional del servidor de seguridad.
EndIf ;End -> Si "$ArgMode" vale "0".
If $ArgLan<>"" Then ;Si "$ArgLan" recibe un valor.
$CommCMD&=" interface="""&$ArgLan&"""" ;Añade el nombre del adaptador de red a configurar, a la configuración funcional del servidor de seguridad.
EndIf ;End -> Si "$ArgLan" recibe un valor.
If Number($ArgExcep)=0 Then ;Si "$ArgExcep" vale "0".
$CommCMD&=" exceptions=""disable""" ;Añade el modo de excepciones, a la configuración funcional del servidor de seguridad.
ElseIf Number($ArgExcep)=1 Then ;Si "$ArgExcep" vale "1".
$CommCMD&=" exceptions=""enable""" ;Añade el modo de excepciones, a la configuración funcional del servidor de seguridad.
EndIf ;End -> Si "$ArgExcep" vale "0".
If Number($ArgProfile)=0 Then ;Si "$ArgProfile" vale "0".
$CommCMD&=" profile=""current""" ;Añade el perfil de configuración, a la configuración funcional del servidor de seguridad.
ElseIf Number($ArgProfile)=1 Then ;Si "$ArgProfile" vale "1".
$CommCMD&=" profile=""domain""" ;Añade el perfil de configuración, a la configuración funcional del servidor de seguridad.
ElseIf Number($ArgProfile)=2 Then ;Si "$ArgProfile" vale "2".
$CommCMD&=" profile=""standard""" ;Añade el perfil de configuración, a la configuración funcional del servidor de seguridad.
ElseIf Number($ArgProfile)=3 Then ;Si "$ArgProfile" vale "3".
$CommCMD&=" profile=""all""" ;Añade el perfil de configuración, a la configuración funcional del servidor de seguridad.
EndIf ;End -> Si "$ArgProfile" vale "0".
$ExCons=_Adsl_ExConsole($CommCMD) ;Ajusta el estado del firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al ajustar el estado del firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetPort($ArgPort, $ArgName="", $ArgLan="", $ArgProt=$_AllWinFirewallProtocol, $ArgMode=$_EnableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="")
#CS
----------
Descripción:
- Modifica la configuración de un puerto en el firewall de Windows.
- Es posible que $ArgProfile y $ArgLan no puedan especificarse conjuntamente.
- Es posible que $ArgScope y $ArgLan no puedan especificarse conjuntamente.
- El valor de $ArgScope debe ser "$_AllWinFirewallScope" para especificar direcciones.
- Pueden especificarse varias direcciones en $ArgAddr, separadas por comas (,).
Parámetro(s):
- $ArgPort: Número de puerto.
El puerto debe ser un valor entre "1" y "65535".
- $ArgName: ("") Nombre de puerto.
- "": Omite este parámetro.
- $ArgLan: ("") Nombre del adaptador de red.
- "": Omite este parámetro.
- $ArgProt: ($_AllWinFirewallProtocol) Protocolo de puerto:
- $_TcpWinFirewallProtocol=TCP.
- $_UdpWinFirewallProtocol=UDP.
- $_AllWinFirewallProtocol=Todos.
- $ArgMode: ($_DisableWinFirewallMode) Modo de puerto:
- "": Omite este parámetro.
- $_DisableWinFirewallMode=No permitir a través del firewall.
- $_EnableWinFirewallMode=Permitir a través del firewall.
- $ArgScope: ($_AllWinFirewallScope) Ámbito de puerto:
- "": Omite este parámetro.
- $_SubnetWinFirewallScope=Red local.
- $_AllowedTraficWinFirewallScope=Tráfico especificado a través del firewall.
- $_AllWinFirewallScope=Todos.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Dominio.
- $_DomainWinFirewallProfile=Estándar.
- $_StandardWinFirewallProfile=Actual.
- $_AllWinFirewallProfile=Todos.
- $ArgAddr: ("") Direcciones de ámbito personalizado.
- "": Omite este parámetro.
Valor(es de retorno:
- 1: La configuración del puerto se modificó correctamente.
- 0: Ocurrió un error al modificar la configuración del puerto.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall show portopening" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((($ArgPort=="") Or (Number($ArgPort)<1 Or Number($ArgPort)>65535)) Or ((StringIsDigit($ArgProt)=0) Or (Number($ArgProt)<>$_TcpWinFirewallProtocol And Number($ArgProt)<>$_UdpWinFirewallProtocol And Number($ArgProt)<>$_AllWinFirewallProtocol)) Or (($ArgMode<>"") And ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgScope<>"") And ((StringIsDigit($ArgScope)=$_SubnetWinFirewallScope) Or (Number($ArgScope)<>$_SubnetWinFirewallScope And Number($ArgScope)<>$_AllowedTraficWinFirewallScope And Number($ArgScope)<>$_AllWinFirewallScope))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgPort", "$ArgName", "$ArgProt", "$ArgMode", "$ArgScope" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Consulta los puertos abiertos en el firewall.
If StringInStr($ExCons, $ArgPort, 0, 1, 1)=0 Then Return 0 ;Si "$ArgPort" no está abierto en el firewall - Devuelve código de error (0).
$CommCMD="netsh firewall set portopening" ;Parte fija del comando a enviar a la línea de comandos del sistema.
$CommCMD&=" port="""&$ArgPort&"""" ;Añade el puerto, al comando a enviar a la línea de comandos del sistema.
If $ArgName<>"" Then ;Si "$ArgName" recibe un valor.
$CommCMD&=" name="""&$ArgName&"""" ;Añade el nombre del puerto, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgName" recibe un valor.
If Number($ArgProt)=$_TcpWinFirewallProtocol Then ;Si "$ArgProt" vale "$_TcpWinFirewallProtocol".
$CommCMD&=" protocol=""tcp""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProt)=$_UdpWinFirewallProtocol Then ;Si "$ArgProt" vale "$_UdpWinFirewallProtocol".
$CommCMD&=" protocol=""udp""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProt)=$_AllWinFirewallProtocol Then ;Si "$ArgProt" vale "$_AllWinFirewallProtocol".
$CommCMD&=" protocol=""all""" ;Añade el protocolo, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProt" vale "$_TcpWinFirewallProtocol".
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "$_DisableWinFirewallMode".
$CommCMD&=" mode=""disable""" ;Añade el modo de puerto, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "$_EnableWinFirewallMode".
$CommCMD&=" mode=""enable""" ;Añade el modo de puerto, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgScope)=$_SubnetWinFirewallScope Then ;Si "$ArgScope" vale "$_SubnetWinFirewallScope".
$CommCMD&=" scope=""subnet""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllowedTraficWinFirewallScope Then ;Si "$ArgScope" vale "$_AllowedTraficWinFirewallScope".
$CommCMD&=" scope=""custom""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllWinFirewallScope Then ;Si "$ArgScope" vale "$_AllWinFirewallScope".
$CommCMD&=" scope=""all""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgScope" vale "$_SubnetWinFirewallScope".
If $ArgAddr<>"" Then ;Si "$ArgAddr" recibe un valor.
$CommCMD&=" addresses="""&$ArgAddr&"""" ;Añade direcciones, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgAddr" recibe un valor.
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
If $ArgLan<>"" Then ;Si "$ArgLan" recibe un valor.
$CommCMD&=" interface="""&$ArgLan&"""" ;Añade el nombre del adaptador de red, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgLan" recibe un valor.
$ExCons=_Adsl_ExConsole($CommCMD) ;Abre el puerto, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al abrir el puerto en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslSetFirewallReset()
#CS
----------
Descripción:
- Restaura el firewall de Windows a su configuración por defecto.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- 1: El firewall se restauró correctamente.
- 0: Ocurrió un error al restaurar el firewall.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall reset" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
$ExCons=_Adsl_ExConsole($CommCMD) ;Restaura el firewall a su configuración por defecto.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al restaurar el firewall a su configuración por defecto - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallSetService($ArgServiceType=$_AllWinFirewallService, $ArgMode=$_EnableWinFirewallMode, $ArgScope=$_AllWinFirewallScope, $ArgProfile=$_AllWinFirewallProfile, $ArgAddr="")
#CS
----------
Descripción:
- Modifica la configuración del servicio del firewall de Windows.
- El valor de $ArgScope debe ser "$_AllWinFirewallScope" para especificar direcciones.
- $ArgScope es ignorado cuando $ArgMode vale "0".
Parámetro(s):
- $ArgServiceType: ($_AllWinFirewallService) Servicio:
- $_FileAndPrintWinFirewallService=Uso compartido de archivos e impresoras.
- $_RemoteAdminWinFirewallService=Administración remota.
- $_RemoteDesktopWinFirewallService=Asistencia remota y escritorio remoto.
- $_UpnpWinFirewallService=Entorno UPnP.
- $_AllWinFirewallService=Todos.
- $ArgMode: ($_EnableWinFirewallMode) Modo de servicio:
- "": Omite este parámetro.
- $_DisableWinFirewallMode=No permitir a través del firewall.
- $_EnableWinFirewallMode=Permitir a través del firewall.
- $ArgScope: ($_AllowedTraficWinFirewallScope) Ámbito del programa:
- "": Omite este parámetro.
- $_SubnetWinFirewallScope=Red local.
- $_AllowedTraficWinFirewallScope=Tráfico especificado a través del firewall.
- $_AllWinFirewallScope=Todos.
- $ArgProfile: ($_AllWinFirewallProfile) Perfil:
- "": Omite este parámetro.
- $_CurrentWinFirewallProfile=Actual.
- $_DomainWinFirewallProfile=Dominio.
- $_StandardWinFirewallProfile=Estándar.
- $_AllWinFirewallProfile=Todos.
- $ArgAddr: ("") Direcciones de ámbito personalizado.
- "": Omite este parámetro.
Valor(es) de retorno:
- 1: La configuración del servicio se modificó correctamente.
- 0: Ocurrió un error al modificar la configuración del servicio.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall set service" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ((($ArgServiceType=="") Or ((StringIsDigit($ArgServiceType)=0) Or (Number($ArgServiceType)<>$_FileAndPrintWinFirewallService And Number($ArgServiceType)<>$_RemoteAdminWinFirewallService And Number($ArgServiceType)<>$_RemoteDesktopWinFirewallService And Number($ArgServiceType)<>$_UpnpWinFirewallService And Number($ArgServiceType)<>$_AllWinFirewallService))) Or (($ArgMode<>"") And ((StringIsDigit($ArgMode)=0) Or (Number($ArgMode)<>$_DisableWinFirewallMode And Number($ArgMode)<>$_EnableWinFirewallMode))) Or (($ArgScope<>"") And ((StringIsDigit($ArgScope)=0) Or (Number($ArgScope)<>$_SubnetWinFirewallScope And Number($ArgScope)<>$_AllowedTraficWinFirewallScope And Number($ArgScope)<>$_AllWinFirewallScope))) Or (($ArgProfile<>"") And ((StringIsDigit($ArgProfile)=0) Or (Number($ArgProfile)<>$_CurrentWinFirewallProfile And Number($ArgProfile)<>$_DomainWinFirewallProfile And Number($ArgProfile)<>$_StandardWinFirewallProfile And Number($ArgProfile)<>$_AllWinFirewallProfile)))) Then Return 0 ;Si "$ArgServiceType", "$ArgMode", "$ArgScope" o "$ArgProfile" no reciben un valor esperado - Devuelve código de error (0).
If Number($ArgServiceType)=$_FileAndPrintWinFirewallService Then ;Si "$ArgServiceType" vale "$_FileAndPrintWinFirewallService".
$CommCMD&=" type=""fileandprint""" ;Añade el tipo de servicio, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgServiceType)=$_RemoteAdminWinFirewallService Then ;Si "$ArgServiceType" vale "$_RemoteAdminWinFirewallService".
$CommCMD&=" type=""remoteadmin""" ;Añade el tipo de servicio, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgServiceType)=$_RemoteDesktopWinFirewallService Then ;Si "$ArgServiceType" vale "$_RemoteDesktopWinFirewallService".
$CommCMD&=" type=""remotedesktop""" ;Añade el tipo de servicio, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgServiceType)=$_UpnpWinFirewallService Then ;Si "$ArgServiceType" vale "$_UpnpWinFirewallService".
$CommCMD&=" type=""upnp""" ;Añade el tipo de servicio, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgServiceType)=$_AllWinFirewallService Then ;Si "$ArgServiceType" vale "$_AllWinFirewallService".
$CommCMD&=" type=""all""" ;Añade el tipo de servicio, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgServiceType" vale "$_FileAndPrintWinFirewallService".
If Number($ArgMode)=$_DisableWinFirewallMode Then ;Si "$ArgMode" vale "$_DisableWinFirewallMode".
$CommCMD&=" mode=""disable""" ;Añade el modo de programa, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgMode)=$_EnableWinFirewallMode Then ;Si "$ArgMODE" vale "$_EnableWinFirewallMode".
$CommCMD&=" mode=""enable""" ;Añade el modo de programa, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgMode" vale "$_DisableWinFirewallMode".
If Number($ArgScope)=$_SubnetWinFirewallScope Then ;Si "$ArgScope" vale "$_SubnetWinFirewallScope".
$CommCMD&=" scope=""subnet""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllowedTraficWinFirewallScope Then ;Si "$ArgScope" vale "$_AllowedTraficWinFirewallScope".
$CommCMD&=" scope=""custom""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgScope)=$_AllWinFirewallScope Then ;Si "$ArgScope" vale "$_AllWinFirewallScope".
$CommCMD&=" scope=""all""" ;Añade el ámbito, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgScope" vale "$_SubnetWinFirewallScope".
If $ArgAddr<>"" Then ;Si "$ArgAddr" recibe un valor.
$CommCMD&=" addresses="""&$ArgAddr&"""" ;Añade direcciones, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgAddr" recibe un valor.
If Number($ArgProfile)=$_CurrentWinFirewallProfile Then ;Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$CommCMD&=" profile=""current""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_DomainWinFirewallProfile Then ;Si "$ArgProfile" vale "$_DomainWinFirewallProfile".
$CommCMD&=" profile=""domain""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_StandardWinFirewallProfile Then ;Si "$ArgProfile" vale "$_StandardWinFirewallProfile".
$CommCMD&=" profile=""standard""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
ElseIf Number($ArgProfile)=$_AllWinFirewallProfile Then ;Si "$ArgProfile" vale "$_AllWinFirewallProfile".
$CommCMD&=" profile=""all""" ;Añade el perfil, al comando a enviar a la línea de comandos del sistema.
EndIf ;End -> Si "$ArgProfile" vale "$_CurrentWinFirewallProfile".
$ExCons=_Adsl_ExConsole($CommCMD) ;Modifica la configuración del servicio, en el firewall.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al modificar la configuración del servicio en el firewall - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslFirewallShow($ArgInf=0)
#CS
----------
Descripción:
- Devuelve la configuración del firewall de Windows.
Parámetro(s):
- $ArgInf: ($_AllWinFirewallShow) Opción:
- $_AllWinFirewallShow=todas.
- $_AllowedProgramWinFirewallShow=Programas añadidos a las excepciones.
- $_CurrentWinFirewallShow=Perfil actual.
- $_IcmpWinFirewallShow=ICMP.
- $_RegWinFirewallShow=Registro.
- $_MultiCastBroadCastWinFirewallShow=Respuesta de multidifusión o difusión.
- $_NotifyWinFirewallShow=Notificaciones.
- $_ModeWinFirewallShow=Configuración funcional.
- $_AllowedPortWinFirewallShow=Puertos añadidos a las excepciones.
- $_ServiceWinFirewallShow=Servicio.
- $_StatusWinFirewallShow=Estado.
Valor(es) de retorno:
- OK: Valor de configuración de $ArgInf.
- 0: Ocurrió un error al obtener el valor de configuración de $ArgInf.
Categoría: Gestión de la configuración del firewall.
----------
#CE
Local $CommCMD="netsh firewall show" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If (($ArgInf=="") Or (StringIsDigit($ArgInf)=0) Or (Number($ArgInf)<>$_AllWinFirewallShow And Number($ArgInf)<>$_AllowedProgramWinFirewallShow And Number($ArgInf)<>$_CurrentWinFirewallShow And Number($ArgInf)<>$_IcmpWinFirewallShow And Number($ArgInf)<>$_RegWinFirewallShow And Number($ArgInf)<>$_MultiCastBroadCastWinFirewallShow And Number($ArgInf)<>$_NotifyWinFirewallShow And Number($ArgInf)<>$_ModeWinFirewallShow And Number($ArgInf)<>$_AllowedPortWinFirewallShow And Number($ArgInf)<>$_ServiceWinFirewallShow And Number($ArgInf)<>$_StatusWinFirewallShow)) Then Return 0 ;Si "$ArgInf" no recibe un valor esperado - Devuelve código de error (0).
Switch($ArgInf) ;Verifica la opción a consultar.
Case $_AllWinFirewallShow ;Toda la configuración.
$ArgInf=" config" ;Ajusta "$ArgInf" a "config".
Case $_AllowedProgramWinFirewallShow ;Programas añadidos a las excepciones.
$ArgInf=" allowedprogram" ;Ajusta "$ArgInf" a "allowedprogram".
Case $_CurrentWinFirewallShow ;Perfil actual.
$ArgInf=" currentprofile" ;Ajusta "$ArgInf" a "currentprofile".
Case $_IcmpWinFirewallShow ;ICMP.
$ArgInf=" icmpsetting" ;Ajusta "$ArgInf" a "icmpsetting".
Case $_RegWinFirewallShow ;Registro.
$ArgInf=" logging" ;Ajusta "$ArgInf" a "logging".
Case $_MultiCastBroadCastWinFirewallShow ;Respuesta de multidifusión o difusión.
$ArgInf=" multicastbroadcastresponse" ;Ajusta "$ArgInf" a "multicastbroadcastresponse".
Case $_NotifyWinFirewallShow ;Notificaciones.
$ArgInf=" notifications" ;Ajusta "$ArgInf" a "notifications".
Case $_ModeWinFirewallShow ;Configuración funcional.
$ArgInf=" opmode" ;Ajusta "$ArgInf" a "opmode".
Case $_AllowedPortWinFirewallShow ;Puertos añadidos a las excepciones.
$ArgInf=" portopening" ;Ajusta "$ArgInf" a "portopening".
Case $_ServiceWinFirewallShow ;Servicio.
$ArgInf=" service" ;Ajusta "$ArgInf" a "service".
Case $_StatusWinFirewallShow ;Estado.
$ArgInf=" state" ;Ajusta "$ArgInf" a "state".
EndSwitch ;End -> Verifica la opción a consultar.
$CommCMD&=$ArgInf ;Añade "$ArgInf", al comando a enviar a la línea de comandos del sistema.
$ExCons=_Adsl_ExConsole($CommCMD) ;Consulta el valor de configuración de "$ArgInf", del firewall.
Return $ExCons ;Devuelve código de ejecución correcta ("$ExCons").
EndFunc
Func _AdslGetDefaultGateway()
#CS
----------
Descripción:
- Devuelve la puerta de enlace del equipo.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- OK: Puerta de enlace predeterminada.
- 0: Ocurrió un error al obtener la puerta de enlace.
Categoría: Información local de red.
----------
#CE
Local $CommCMD="ipconfig" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
$ExCons=_Adsl_ExConsole($CommCMD) ;Obtiene la puerta de enlace predeterminada del equipo.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al obtener la puerta de enlace predeterminada del equipo - Devuelve código de error (0).
If (StringInStr($ExCons, "puerta de enlace predeterminada", 0, 1, 1)=0 Or StringInStr($ExCons, " ", 0, 1, StringInStr($ExCons, "puerta de enlace predeterminada", 0, 1, 1))=0) Then Return 0 ;Si no se encuentra la cadena "puerta de enlace predeterminada", o después de esta no se encuentra la cadena " " - Devuelve código de error (0).
Return StringMid($ExCons, (StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "puerta de enlace predeterminada", 0, 1, 1))+1), (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "puerta de enlace predeterminada", 0, 1, 1))-(StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "puerta de enlace predeterminada", 0, 1, 1))))) ;Devuelve código de ejecución correcta ("puerta de enlace predeterminada").
EndFunc
Func _AdslGetDns($ArgDNS=$_AllInfoDnsConfig)
#CS
----------
Descripción:
- Devuelve los DNS configurados en el adaptador de red activo.
Parámetro(s):
- $ArgDNS: ($_AllInfoDnsConfig) DNS a consultar:
- $_AllInfoDnsConfig=Todos.
- $_PrimaryInfoDnsConfig=Preferido.
- $_SecondaryInfoDnsConfig=Alternativo.
Valor(es) de retorno:
- OK: DNS del adaptador de red activo.
Si $ArgDNS vale $_AllInfoDnsConfig, la función devuelve un array donde:
- [0]=Cantidad de elementos del array.
- [1]=DNS preferido.
- [2]=DNS alternativo.
- 0: Ocurrió un error al obtener los DNS.
Categoría: Información local de red.
----------
#CE
Local $CommCMD="netsh interface ip show dns" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
Local $Ret[3] ;Array para devolver toda la información de "$ArgDNS".
Local $LanACT ;Adaptador de red en uso.
Local $NLoop=1 ;Contador de vueltas del bucle para buscar los DNS del equipo.
Local $BuffCurrentLan ;Buffer para almacenar el adaptador de red leído.
If (Number($ArgDNS)<>$_AllInfoDnsConfig And Number($ArgDNS)<>$_PrimaryInfoDnsConfig And Number($ArgDNS)<>$_SecondaryInfoDnsConfig) Then Return 0 ;Si "$ArgDNS" recibe un valor no esperado - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Obtiene información de los DNS del equipo.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al obtener la información de los DNS del equipo - Devuelve código de error (0).
$LanACT=_AdslGetLanEnable() ;Obtiene el adaptador de red en uso.
If $LanACT==0 Then Return 0 ;Si ocurrió un error al obtener el adaptador de red en uso - Devuelve código de error (0).
While 1 ;Busca DNS.
If StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1)<>0 Then ;Si se está leyendo el nombre de un adaptador de red existente en el equipo.
$BuffCurrentLan=StringMid($ExCons, (StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1)+31), (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1))-(StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1)+31))) ;Almacena en el buffer el adaptador de red actual.
If StringLower($LanACT)=="adaptador ethernet "&StringLower($BuffCurrentLan) Then ;Si el adaptador de red actual está en uso.
If (StringStripWS(StringLower(StringMid($ExCons, (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1), ((StringInStr($ExCons, @CRLF, 0, 2, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))-1)-(StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1)))), 3)=="servidores dns configurados estáticamente:ninguno" _ ;Si no hay DNS configurados estáticamente.
Or StringStripWS(StringLower(StringMid($ExCons, (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1), ((StringInStr($ExCons, @CRLF, 0, 2, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))-1)-(StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1)))), 3)=="servidores dns configurados a través de dhcp:ninguno") Then Return 0 ;O si no hay DNS configurados a través de DHCP - Devuelve código de error (0).
$Ret[1]=StringStripWS(StringMid($ExCons, (StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1), (StringInStr($ExCons, @CRLF, 0, 2, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))-(StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1))), 3) ;Añade "DNS preferido" a "$Ret".
$Ret[2]=StringStripWS(StringMid($ExCons, (StringInStr($ExCons, @CRLF, 0, 2, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1), (StringInStr($ExCons, @CRLF, 0, 3, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))-(StringInStr($ExCons, @CRLF, 0, 2, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1))), 3) ;Añade "DNS alternativo" a "$Ret".
ExitLoop ;Sale del bucle.
Else ;Si el adaptador de red actual no está en uso.
$NLoop+=1 ;Suma "1" al contador de vueltas del bucle para obtener los DNS del equipo.
ContinueLoop ;Continúa con la siguiente iteración del bucle.
EndIf ;End -> Si el adaptador de red actual está en uso.
Else ;Si no se está leyendo el nombre de un adaptador de red existente en el equipo.
$NLoop+=1 ;Suma "1" al contador de vueltas del bucle para obtener los DNS del equipo.
ContinueLoop ;Continúa con la siguiente iteración del bucle.
EndIf ;End -> Si se está leyendo el nombre de un adaptador de red existente en el equipo.
Wend ;End -> Busca DNS.
Switch($ArgDNS) ;Comprobar la información a devolver.
Case $_AllInfoDnsConfig ;Devolver "DNS preferido" y "DNS alternativo".
If ($Ret[1]=="" Or $Ret[2]=="") Then Return 0 ;Si no se encuentra el "DNS preferido" o el "DNS alternativo" - Devuelve código de error (0).
$Ret[0]=2 ;Pone la cantidad de elementos del array a retornar en el elemento [0] de este.
Return $Ret ;Devuelve código de ejecución correcta ("$Ret").
Case $_PrimaryInfoDnsConfig ;Devolver "DNS preferido".
If $Ret[1]=="" Then Return 0 ;Si no se encuentra el "DNS preferido" - Devuelve código de error (0).
Return $Ret[1] ;Devuelve código de ejecución correcta ("DNS preferido").
Case $_SecondaryInfoDnsConfig ;Devolver "DNS alternativo".
If $Ret[2]=="" Then Return 0 ;Si no se encuentra el "DNS alternativo" - Devuelve código de error (0).
Return $Ret[2] ;Devuelve código de ejecución correcta ("DNS alternativo").
EndSwitch ;End -> Comprobar la información a devolver.
EndFunc
Func _AdslGetDnsType()
#CS
----------
Descripción:
- Devuelve la configuración de los DNS del adaptador de red activo.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- OK: Tipo de configuración de los DNS:
- 0=Estática.
- 1=DHCP.
- -1: Ocurrió un error al obtener la configuración de los DNS.
Categoría: Información local de red.
----------
#CE
Local $CommCMD="netsh interface ip show dns" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
Local $LanACT ;Adaptador de red en uso.
Local $NLoop=1 ;Contador de vueltas del bucle para buscar la configuración de los DNS.
Local $BuffCurrentLan ;Buffer para almacenar el adaptador de red leído.
Local $BuffDNSInf ;Buffer para almacenar la configuración de los DNS.
Local $GetDNSConfig ;Comprueba la configuración de los DNS.
$ExCons=_Adsl_ExConsole($CommCMD) ;Obtiene información de los DNS del equipo.
If $ExCons==0 Then Return -1 ;Si ocurrió un error al obtener la información de los DNS del equipo - Devuelve código de error (0).
$LanACT=_AdslGetLanEnable() ;Obtiene el adaptador de red en uso.
If $LanACT==0 Then Return -1 ;Si ocurrió un error al obtener el adaptador de red en uso - Devuelve código de error (0).
While 1 ;Busca configuración de DNS.
If StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1)<>0 Then ;Si se está leyendo el nombre de un adaptador de red existente en el equipo.
$BuffCurrentLan=StringMid($ExCons, (StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1)+31), (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1))-(StringInStr($ExCons, "configuración para la interfaz", 0, $NLoop, 1)+31))) ;Almacena en el buffer el adaptador de red actual.
If StringLower($LanACT)=="adaptador ethernet "&StringLower($BuffCurrentLan) Then ;Si el adaptador de red actual está en uso.
If (StringStripWS(StringLower(StringMid($ExCons, (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1), ((StringInStr($ExCons, @CRLF, 0, 2, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))-1)-(StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1)))), 3)=="servidores dns configurados estáticamente:ninguno" _ ;Si no hay DNS configurados estáticamente.
Or StringStripWS(StringLower(StringMid($ExCons, (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1), ((StringInStr($ExCons, @CRLF, 0, 2, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))-1)-(StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1)))), 3)=="servidores dns configurados a través de dhcp:ninguno") Then Return 0 ;O si no hay DNS configurados a través de DHCP - Devuelve código de error (0).
$GetDNSConfig=StringLower(StringMid($ExCons, (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1), (StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))-(StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "configuración para la interfaz "&$BuffCurrentLan&@CRLF, 0, 1, 1))+1)))) ;Comprueba la configuración de los DNS.
If StringInStr($GetDNSConfig, "estáticamente", 0, 1, 1)<>0 Then ;Si los DNS están configurados estáticamente.
$BuffDNSInf=0 ;Almacena la configuración de los DNS en el buffer.
ElseIf StringInStr($GetDNSConfig, "dhcp", 0, 1, 1)<>0 Then ;Si los DNS están configurados a través de DHCP.
$BuffDNSInf=1 ;Almacena la configuración de los DNS en el buffer.
EndIf ;End -> Si los DNS están configurados estáticamente.
ExitLoop ;Sale del bucle.
Else ;Si el adaptador de red actual no está en uso.
$NLoop+=1 ;Suma "1" al contador de vueltas del bucle para obtener la configuración de los DNS del equipo.
ContinueLoop ;Continúa con la siguiente iteración del bucle.
EndIf ;End -> Si el adaptador de red actual está en uso.
Else ;Si no se está leyendo el nombre de un adaptador de red existente en el equipo.
$NLoop+=1 ;Suma "1" al contador de vueltas del bucle para obtener la configuración de los DNS del equipo.
ContinueLoop ;Continúa con la siguiente iteración del bucle.
EndIf ;End -> Si se está leyendo el nombre de un adaptador de red existente en el equipo.
Wend ;End -> Busca configuración de DNS.
Return $BuffDNSInf ;Devuelve código de ejecución correcta ("$BuffDNSInf").
EndFunc
Func _AdslGetDownloadSpeed($ArgMeasure)
#CS
----------
Descripción:
- Devuelve la velocidad de bajada, de la conexión a internet.
Parámetro(s):
- $ArgMeasure: ($_DownloadSpeedKBITPerSEC) Unidad de medida:
- $_DownloadSpeedKBYTEPerSEC=Kilobytes por segundo.
- $_DownloadSpeedKBITPerSEC=Kilobits por segundo.
- $_DownloadSpeedMBYTEPerSEC=Megabytes por segundo.
Valor(es) de retorno:
- OK: Array donde:
- [0]=Cantidad de elementos del array.
- [1]=Velocidad de bajada.
- [2]=Tiempo en milisegundos, empleado para calcular la velocidad de bajada.
- [3]=Tiempo en segundos, empleado para calcular la velocidad de bajada.
- -1: Ocurrió un error al calcular la velocidad de bajada.
Categoría: Información remota de usuarios.
----------
#CE
Local $GetDownloadSpeedPerSEC ;Obtener velocidad de bajada.
Local $SVHost="www.microsoft.com" ;Host del servidor usado para descargar datos.
Local $SVPort=80 ;Puerto de conexión en el servidor usado para descargar datos.
Local $SVPathDoc="/en-us/default.aspx" ;Ruta del documento html en el servidor usado para descargar datos.
Local $SVConsMethod=$_GetSvConnMethod ;Tipo de consulta (paso de parámetros).
Local $HUsAg="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)" ;Contenido de la cabecera "User-Agent".
Local $HConn="close" ;Contenido de la cabecera "Connection".
Local $BloqDataSize=1 ;Tamaño del bloque de datos a recibir del servidor usado para descargar datos.
Local $Buff_TimeStart ;Buffer para almacenar una marca de tiempo en milisegundos.
Local $Buff_TimeDiff ;Buffer para almacenar diferencia de tiempo en milisegundos.
Local $Buff_TimeSEC ;Buffer para almacenar diferencia de tiempo en segundos.
Local $Buff_Measure ;Buffer para almacenar la velocidad de bajada calculada.
Local $Buff_Ret[4] ;Buffer para almacenar los valores de retorno.
If (($ArgMeasure=="") Or (Number($ArgMeasure)<>$_DownloadSpeedKBYTEPerSEC And Number($ArgMeasure)<>$_DownloadSpeedKBITPerSEC And Number($ArgMeasure)<>$_DownloadSpeedMBYTEPerSEC)) Then Return -1 ;Si "$ArgMeasure" recibe un valor distinto de "$_DownloadSpeedKBYTEPerSEC", "$_DownloadSpeedKBITPerSEC" o "$_DownloadSpeedMBYTEPerSEC" - Devuelve código de error (-1).
$Buff_TimeStart=TimerInit() ;Establece una marca de tiempo en milisegundos.
$GetDownloadSpeedPerSEC=_Adsl_ShockConnSV($SVHost, $SVPort, $BloqDataSize, $SVPathDoc, $SVConsMethod, "", "", "", $HUsAg, "", "", $SVHost, "", $HConn, "", "", "", "") ;Descarga datos del servidor.
$Buff_TimeDiff=TimerDiff($Buff_TimeStart) ;Obtiene la diferencia de tiempo entre la marca de tiempo actual y "$Buff_TimerStart".
If ($GetDownloadSpeedPerSEC==0) Then Return -1 ;Si ocurrió un error al recibir datos del servidor - Devuelve código de error (-1).
$Buff_TimeSEC=$Buff_TimeDiff/1000 ;Convierte "$Buff_TimeDiff" en segundos.
Switch($ArgMeasure) ;Verifica la unidad de medida de velocidad a devolver.
Case $_DownloadSpeedKBYTEPerSEC ;Kilobytes por segundo.
$Buff_Measure=Round(((StringLen($GetDownloadSpeedPerSEC)/1024)/$Buff_TimeSEC)) ;Calcula la velocidad de bajada en kilobytes por segundo.
Case $_DownloadSpeedKBITPerSEC ;Kilobits por segundo.
$Buff_Measure=Round((((StringLen($GetDownloadSpeedPerSEC)/1024)*8)/$Buff_TimeSEC)) ;Calcula la velocidad de bajada en kilobits por segundo.
Case $_DownloadSpeedMBYTEPerSEC ;Megabytes por segundo.
$Buff_Measure=Round((((StringLen($GetDownloadSpeedPerSEC)/1024)/1024)/$Buff_TimeSEC)) ;Calcula la velocidad de bajada en megabytes por segundo.
EndSwitch ;End -> Verifica la unidad de medida de velocidad a devolver.
$Buff_Ret[0]=3 ;Establece la cantidad de elementos del buffer para almacenar los valores de retorno, en la posición [0] de este.
$Buff_Ret[1]=$Buff_Measure ;Almacena la velocidad de bajada en el buffer para almacenar los valores de retorno, en la posición [1] de este.
$Buff_Ret[2]=Round($Buff_TimeDiff) ;Almacena el tiempo empleado en milisegundos, para calcular la velocidad de bajada en el buffer para almacenar los valores de retorno, en la posición [2] de este.
$Buff_Ret[3]=Round($Buff_TimeSEC) ;Almacena el tiempo empleado en segundos, para calcular la velocidad de bajada en el buffer para almacenar los valores de retorno, en la posición [3] de este.
Return $Buff_Ret ;Devuelve código de ejecución correcta ($Buff_Ret).
EndFunc
Func _AdslGetIpIsp($ArgIp, $ArgInfType=$_AllInfoIpIsp)
#CS
----------
Descripción:
- Devuelve el ISP al que pertenece una dirección IP.
Parámetro(s):
- $ArgIp: Dirección IP.
- $ArgInfType: ($_AllInfoIpIsp) Información a consultar:
- $_AllInfoIpIsp=Toda.
- $_NameInfoIpIsp=Nombre.
- $_DescrInfoIpIsp=Descripción.
Valor(es) de retorno:
- OK: ISP al que pertenece "$ArgIp".
Si $ArgInfType vale $_AllInfoIpIsp, la función devuelve un array donde:
- [0]=Cantidad de elementos del array.
- [1]=Nombre.
- [2]=Descripción.
- 0: Ocurrió un error al detectar el ISP al que pertenece "$ArgIp".
Categoría: Información remota de usuarios.
----------
#CE
Local $GetIspInf ;Consultar información de "$ArgIp".
Local $SVHost="www.ipaddresslocation.org" ;Host del servidor de consulta.
Local $SVPort=80 ;Puerto de conexión en el servidor de consulta.
Local $SVPathDoc="/ip-address-locator.php" ;Ruta del recurso en el servidor de consulta.
Local $SVConsMethod=1 ;Tipo de consulta (paso de parámetros).
Local $HUsAg="MSIE" ;Contenido de la cabecera "User-Agent".
Local $HCT="application/x-www-form-urlencoded" ;Contenido de la cabecera "Content-Type".
Local $HConn="close" ;Contenido de la cabecera "Connection".
Local $HCLength=17 ;Contenido de la cabecera "Content-Length".
Local $ConsParam="ip" ;Parámetro a enviar al servidor.
Local $StripTagsDoc ;Eliminar código HTML, JAVASCRIPT, CSS y convertir carácteres HTML especiales en carácteres ASCII, de la respuesta del servidor.
Local $Ret[3] ;Array para devolver toda la información de "$ArgIp".
If (($ArgIp=="" Or _Adsl_CheckIp($ArgIp)=0) Or (Number($ArgInfType)<>$_AllInfoIpIsp And Number($ArgInfType)<>$_NameInfoIpIsp And Number($ArgInfType)<>$_DescrInfoIpIsp)) Then Return 0 ;Si "$ArgIp" o "$ArgInfType" no reciben un valor esperado - Devuelve código de error (0).
$GetIspInf=_Adsl_ShockConnSV($SVHost, $SVPort, 4096, $SVPathDoc, $SVConsMethod, "", "", "", $HUsAg, $HCT, "", $SVHost, $HCLength, $HConn, "", "", $ConsParam, $ArgIp) ;Obtiene la información del ISP de "$ArgIp".
If $GetIspInf==0 Then Return 0 ;Si ocurrió un error al obtener la información de "$ArgIp" - Devuelve código de error (0).
$StripTagsDoc=_Adsl_WebCodeStrip($GetIspInf, 1, 1, 1, 1, 1, 1, "", "", 0, 0) ;Elimina código HTML, JAVASCRIPT, CSS y convierte carácteres HTML especiales en carácteres ASCII.
If $StripTagsDoc==0 Then Return 0 ;Si ocurrió un error al eliminar código HTML, JAVASCRIPT, CSS o convertir los carácteres HTML especiales en carácteres ASCII - Devuelve código de error (0).
If (StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "organization:", 0, 1, 1))+2), 13))=="isp provider:" Or StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "isp provider:", 0, 1, 1))+2), 79))=="please note that if city is not detected ip locator will point to your country.") Then Return 0 ;Si no se encuentra el nombre o la descripción del ISP - Devuelve código de error (0).
Switch($ArgInfType) ;Comprobar la información a devolver.
Case $_AllInfoIpIsp ;Devolver "nombre" y "descripción".
$Ret[0]=2 ;Pone la cantidad de elementos del array a retornar en el elemento [0] de este.
$Ret[1]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "organization:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "organization:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "organization:", 0, 1, 1)+15))) ;Añade información de "nombre" a "$Ret".
$Ret[2]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "isp provider:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "isp provider:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "isp provider:", 0, 1, 1)+15))) ;Añade información de "descripción" a "$Ret".
Return $Ret ;Devuelve código de ejecución correcta ("$Ret").
Case $_NameInfoIpIsp ;Devolver "nombre".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "organization:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "organization:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "organization:", 0, 1, 1)+15))) ;Devuelve código de ejecución correcta ("nombre").
Case $_DescrInfoIpIsp ;Devolver "descripción".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "isp provider:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "isp provider:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "isp provider:", 0, 1, 1)+15))) ;Devuelve código de ejecución correcta ("descripción").
EndSwitch ;End -> Comprobar la información a devolver.
EndFunc
Func _AdslGetIpLocal()
#CS
----------
Descripción:
- Devuelve la IP privada del equipo.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- OK: Dirección IP privada.
- 0: Ocurrió un error al obtener la IP privada del equipo.
Categoría: Información local de red.
----------
#CE
Local $CommCMD="ipconfig" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
$ExCons=_Adsl_ExConsole($CommCMD) ;Obtiene la IP privada del equipo.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al obtener la IP privada del equipo - Devuelve código de error (0).
If (StringInStr($ExCons, "dirección ip", 0, 1, 1)=0 Or StringInStr($ExCons, "máscara de subred", 0, 1, StringInStr($ExCons, "dirección ip", 0, 1, 1))=0) Then Return 0 ;Si no se encuentra la cadena "dirección ip", o después de esta no se encuentra la cadena "máscara de subred" - Devuelve código de error (0).
Return StringMid($ExCons, (StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "dirección ip", 0, 1, 1))+1), (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "dirección ip", 0, 1, 1))-(StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "dirección ip", 0, 1, 1))))) ;Devuelve código de ejecución correcta ("IP privada").
EndFunc
Func _AdslGetIpLocation($ArgIp, $ArgInfType=$_AllInfoIpLocation)
#CS
----------
Descripción:
- Devuelve la geolocalización de una dirección IP.
Parámetro(s):
- $ArgIp: Dirección IP.
- $ArgInfType: ($_AllInfoIpLocation) Información a consultar:
- $_AllInfoIpLocation=Toda.
- $_ContinentInfoIpLocation=Continente.
- $_CountryInfoIpLocation=País.
- $_RegionInfoIpLocation=Región.
- $_CityInfoIpLocation=Ciudad.
- $_LongitudeInfoIpLocation=Longitud.
- $_LatitudeInfoIpLocation=Latitud.
Valor(es) de retorno:
- OK: Datos de geolocalización.
Si $ArgInfType vale $_AllInfoIpLocation, la función devuelve un array donde:
- [0]=Cantidad de elementos del array.
- [1]=Continente.
- [2]=País.
- [3]=Región.
- [4]=Ciudad.
- [5]=Longitud.
- [6]=Latitud.
- 0: Ocurrió un error al obtener los datos de geolocalización.
Categoría: Información remota de usuarios.
----------
#CE
Local $GetLocationInf ;Consultar localización de la dirección IP.
Local $SVHost="www.ipaddresslocation.org" ;Host del servidor de consulta.
Local $SVPort=80 ;Puerto de conexión en el servidor de consulta.
Local $SVPathDoc="/ip-address-locator.php" ;Ruta del recurso en el servidor de consulta.
Local $SVConsMethod=1 ;Tipo de consulta (paso de parámetros).
Local $HUsAg="MSIE" ;Contenido de la cabecera "User-Agent".
Local $HCT="application/x-www-form-urlencoded" ;Contenido de la cabecera "Content-Type".
Local $HConn="close" ;Contenido de la cabecera "Connection".
Local $HCLength=17 ;Contenido de la cabecera "Content-Length".
Local $ConsParam="ip" ;Parámetro a enviar al servidor.
Local $StripTagsDoc ;Eliminar código HTML, JAVASCRIPT, CSS y convertir carácteres HTML especiales en carácteres ASCII, de la respuesta del servidor.
Local $Ret[7] ;Array para devolver toda la información de "$ArgIp".
If (($ArgIp=="" Or _Adsl_CheckIp($ArgIp)=0) Or (Number($ArgInfType)<>$_AllInfoIpLocation And Number($ArgInfType)<>$_ContinentInfoIpLocation And Number($ArgInfType)<>$_CountryInfoIpLocation And Number($ArgInfType)<>$_RegionInfoIpLocation And Number($ArgInfType)<>$_CityInfoIpLocation And Number($ArgInfType)<>$_LongitudeInfoIpLocation And Number($ArgInfType)<>$_LatitudeInfoIpLocation)) Then Return 0 ;Si "$ArgIp" o "$ArgInfType" no reciben un valor esperado - Devuelve código de error (0).
$GetLocationInf=_Adsl_ShockConnSV($SVHost, $SVPort, 4096, $SVPathDoc, $SVConsMethod, "", "", "", $HUsAg, $HCT, "", $SVHost, $HCLength, $HConn, "", "", $ConsParam, $ArgIp) ;Obtiene los datos de geolocalización de "$ArgIp".
If $GetLocationInf==0 Then Return 0 ;Si ocurrió un error al obtener los datos de geolocalización de "$ArgIp" - Devuelve código de error (0).
$StripTagsDoc=_Adsl_WebCodeStrip($GetLocationInf, 1, 1, 1, 1, 1, 1, "", "", 0, 0) ;Elimina código HTML, JAVASCRIPT, CSS y convierte carácteres HTML especiales en carácteres ASCII.
If $StripTagsDoc==0 Then Return 0 ;Si ocurrió un error al eliminar código HTML, JAVASCRIPT, CSS o convertir los carácteres HTML especiales en carácteres ASCII - Devuelve código de error (0).
If (StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "ip country:", 0, 1, 1))+2), 16))=="ip country code:" _ ;Si no se encuentra la información de "país".
Or StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "ip continent:", 0, 1, 1))+2), 10))=="ip region:" _ ;O si no se encuentra la información de "continente".
Or StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "ip region:", 0, 1, 1))+2), 13))=="guessed city:" _ ;O si no se encuentra la información de "región".
Or StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "guessed city:", 0, 1, 1))+2), 12))=="ip latitude:" _ ;O si no se encuentra la información de "ciudad".
Or StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "ip latitude:", 0, 1, 1))+2), 13))=="ip longitude:" _ ;O si no se encuentra la información de "latitud".
Or StringLower(StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, @CRLF, 0, 1, StringInStr($StripTagsDoc, "ip longitude:", 0, 1, 1))+2), 13))=="organization:") Then Return 0 ;O si no se encuentra la información de "longitud" - Devuelve código de error (0).
Switch($ArgInfType) ;Comprobar la información a devolver.
Case $_AllInfoIpLocation ;Devolver "país", "continente", "región", "ciudad", "latitud" y "longitud".
$Ret[0]=6 ;Pone la cantidad de elementos del array a retornar en el elemento [0] de este.
$Ret[1]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip country:", 0, 1, 1)+13), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip country:", 0, 1, 1)+13))-(StringInStr($StripTagsDoc, "ip country:", 0, 1, 1)+13))) ;Añade información de "país" a "$Ret".
$Ret[2]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip continent:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip continent:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "ip continent:", 0, 1, 1)+15))) ;Añade información de "continente" a "$Ret".
$Ret[3]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip region:", 0, 1, 1)+12), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip region:", 0, 1, 1)+12))-(StringInStr($StripTagsDoc, "ip region:", 0, 1, 1)+12))) ;Añade información de "región" a "$Ret".
$Ret[4]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "guessed city:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "guessed city:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "guessed city:", 0, 1, 1)+15))) ;Añade información de "ciudad" a "$Ret".
$Ret[5]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip latitude:", 0, 1, 1)+14), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip latitude:", 0, 1, 1)+14))-(StringInStr($StripTagsDoc, "ip latitude:", 0, 1, 1)+14))) ;Añade información de "latitud" a "$Ret".
$Ret[6]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip longitude:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip longitude:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "ip longitude:", 0, 1, 1)+15))) ;Añade información de "longitud" a "$Ret".
Return $Ret ;Devuelve código de ejecución correcta ("$Ret").
Case $_ContinentInfoIpLocation ;Devolver "país".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip country:", 0, 1, 1)+13), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip country:", 0, 1, 1)+13))-(StringInStr($StripTagsDoc, "ip country:", 0, 1, 1)+13))) ;Devuelve código de ejecución correcta ("país").
Case $_CountryInfoIpLocation ;Devolver "continente".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip continent:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip continent:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "ip continent:", 0, 1, 1)+15))) ;Devuelve código de ejecución correcta ("continente").
Case $_RegionInfoIpLocation ;Devolver "región".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip region:", 0, 1, 1)+12), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip region:", 0, 1, 1)+12))-(StringInStr($StripTagsDoc, "ip region:", 0, 1, 1)+12))) ;Devuelve código de ejecución correcta ("región").
Case $_CityInfoIpLocation ;Devolver "ciudad".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "guessed city:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "guessed city:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "guessed city:", 0, 1, 1)+15))) ;Devuelve código de ejecución correcta ("ciudad").
Case $_LongitudeInfoIpLocation ;Devolver "latitud".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip latitude:", 0, 1, 1)+14), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip latitude:", 0, 1, 1)+14))-(StringInStr($StripTagsDoc, "ip latitude:", 0, 1, 1)+14))) ;Devuelve código de ejecución correcta ("latitud").
Case $_LatitudeInfoIpLocation ;Devolver "longitud".
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "ip longitude:", 0, 1, 1)+15), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "ip longitude:", 0, 1, 1)+15))-(StringInStr($StripTagsDoc, "ip longitude:", 0, 1, 1)+15))) ;Devuelve código de ejecución correcta ("longitud").
EndSwitch ;End -> Comprobar la información a devolver.
EndFunc
Func _AdslGetIpRemote($ArgShocket)
#CS
----------
Descripción:
- Devuelve la dirección IP de una conexión entrante.
Parámetro(s):
- $ArgShocket: Identificador del socket que recibe la conexión de la que se quiere obtener la dirección IP.
Valor(es) de retorno:
- OK: Dirección IP.
- 0: Ocurrió un error al obtener la dirección IP.
Categoría: Información remota de usuarios.
----------
#CE
Local $ShockAddr ;Estructura para la detección de la dirección IP.
Local $BuffIP ;Buffer para almacenar la dirección IP.
If $ArgShocket=="" Then Return 0 ;Si "$ArgShocket" no recibe un valor esperado - Devuelve código de error (0).
$ShockAddr=DllStructCreate("short;ushort;uint;char[8]") ;Estructura para la detección de la dirección IP.
If ($ShockAddr=0 Or @Error<>0) Then Return 0 ;Si ocurrió un error al crear la estructura para detectar la dirección IP - Devuelve código de error (0).
$BuffIP=DllCall("Ws2_32.dll", "int", "getpeername", "int", $ArgShocket, "ptr", DllStructGetPtr($ShockAddr), "int*", DllStructGetSize($ShockAddr)) ;Invoca la función "getpeername" de la librería "Ws2_32.dll".
If ($BuffIP[0]=0 And @Error<>0) Then Return 0 ;Si ocurrió un error al invocar la función "getpeername" de la librería "Ws2_32.dll" - Devuelve código de error (0).
$BuffIP=DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($ShockAddr, 3)) ;Invoca la función "inet_ntoa" de la librería "Ws2_32.dll".
If @Error<>0 Then Return 0 ;Si ocurrió un error al invocar la función "inet_ntoa" de la librería "Ws2_32.dll" - Devuelve código de error (0).
$ShockAddr=0 ;Elimina la estructura para detectar la dirección IP.
Return $BuffIP[0] ;Devuelve código de ejecución correcta ("$BuffIP[0]").
EndFunc
Func _AdslGetIpType($ArgIp)
#CS
----------
Descripción:
- Devuelve el tipo de dirección IP.
Parámetro(s):
- $ArgIp: Dirección IP.
Valor(es) de retorno:
- OK: Tipo de dirección IP:
- 0=Dinámica.
- 1=Estática.
- -1: Ocurrió un error al obtener el tipo de la dirección IP.
Categoría: Información remota de usuarios.
----------
#CE
Local $TCPStart ;Inicializar servicios TCP.
Local $TCPQuit ;Finalizar servicios TCP.
Local $GetIPType ;Detectar el tipo de dirección IP.
If ($ArgIp=="" Or _Adsl_CheckIp($ArgIp)=0) Then Return -1 ;Si "$ArgIp" no recibe un valor esperado - Devuelve código de error (-1).
$TCPStart=TcpStartUp() ;Inicializa servicios TCP.
If $TCPStart=0 Then Return -1 ;Si ocurrió un error al inicializar servicios TCP - Devuelve código de error (-1).
$GetIPType=_TcpIpToName($ArgIp) ;Detecta el tipo de dirección IP.
If @Error<>0 Then Return -1 ;Si ocurrió un error al detectar el tipo de dirección IP - Devuelve código de error (-1).
$TCPQuit=TCPShutDown() ;Finaliza servicios TCP.
If $TCPQuit=0 Then Return -1 ;Si ocurrió un error al finalizar servicios TCP - Devuelve código de error (-1).
If (StringInStr($GetIPType, "dynamic", 0, 1, 1)=0 And StringInStr($GetIPType, "static", 0, 1, 1)=0) Then Return -1 ;Si ocurrió un error al detectar el tipo de dirección IP - Devuelve código de error (-1).
If StringInStr($GetIPType, "dynamic", 0, 1, 1)<>0 Then Return 0 ;Si "$ArgIp" es dinámica - Devuelve código de ejecución correcta (0).
If StringInStr($GetIPType, "static", 0, 1, 1)<>0 Then Return 1 ;Si "$ArgIp" es estática - Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslGetLanDisable()
#CS
----------
Descripción:
- Devuelve los adaptadores de red que no están en uso.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- OK: Adaptadores de red que no están en uso.
Los dispositivos se devuelven en un array donde:
- [0]=Cantidad de elementos del array.
- [nº]=Adaptador de red inactivo.
Si no se encuentran adaptadores de red inactivos, la función devolverá un array de un elemento:
- [0]=Cantidad de elementos del array ("0").
- 0: Ocurrió un error al obtener los adaptadores de red inactivos.
Categoría: Información local de red.
----------
#CE
Local $CommCMD="ipconfig" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
Local $NLoop=1 ;Contador de vueltas del bucle para buscar los adaptadores de red inactivos.
Local $BuffLanStatusInf ;Buffer para almacenar el estado del adaptador de red actual.
Local $Ret[1] ;Array para devolver los adaptadores de red inactivos.
$ExCons=_Adsl_ExConsole($CommCMD) ;Obtiene los adaptadores de red inactivos.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al obtener los adaptadores de red inactivos - Devuelve código de error (0).
While 1 ;Busca adaptadores de red inactivos.
If StringInStr($ExCons, "adaptador ethernet", 0, $NLoop, 1)<>0 Then ;Si se está leyendo el nombre de un adaptador de red existente en el equipo.
$BuffLanStatusInf=StringLower(StringMid($ExCons, (StringInStr($ExCons, ":", 0, 2, StringInStr($ExCons, "adaptador ethernet", 0, $NLoop, 1))+1), (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, ":", 0, 2, StringInStr($ExCons, "adaptador ethernet", 0, $NLoop, 1)))-(StringInStr($ExCons, ":", 0, 2, StringInStr($ExCons, "adaptador ethernet", 0, $NLoop, 1))+1)))) ;Comprueba el estado del adaptador de red actual.
If $BuffLanStatusInf=="medios desconectados" Then ;Si el adaptador de red actual está inactivo.
ReDim $Ret[(Ubound($Ret, 1)+1)] ;Añade un elemento a "$Ret".
$Ret[(Ubound($Ret, 1)-1)]=StringStripWS(StringMid($ExCons, (StringInStr($ExCons, "adaptador ethernet", 0, $NLoop, 1)+19), (StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "adaptador ethernet", 0, $NLoop, 1))-(StringInStr($ExCons, "adaptador ethernet", 0, $NLoop, 1)+19))), 3) ;Almacena el adaptador de red actual en "$Ret".
$NLoop+=1 ;Suma "1" al contador de vueltas del bucle para obtener los adaptadores de red inactivos.
ContinueLoop ;Continúa con la siguiente iteración del bucle.
Else ;Si el adaptador de red actual no está inactivo.
$NLoop+=1 ;Suma "1" al contador de vueltas del bucle para obtener los adaptadores de red inactivos.
ContinueLoop ;Continúa con la siguiente iteración del bucle.
EndIf ;End -> Si el adaptador de red actual está inactivo.
Else ;Si no se encuentran adaptadores de red.
$NLoop+=1 ;Suma "1" al contador de vueltas del bucle para obtener los adaptadores de red inactivos.
ExitLoop ;Sale del bucle.
EndIf ;End -> Si se está leyendo el nombre de un adaptador de red existente en el equipo.
Wend ;End -> Busca adaptadores de red inactivos.
$Ret[0]=(Ubound($Ret, 1)-1) ;Pone la cantidad de elementos del array a retornar en el elemento [0] de este.
Return $Ret ;Devuelve código de ejecución correcta ("$Ret").
EndFunc
Func _AdslGetLanEnable()
#CS
----------
Descripción:
- Devuelve el adaptador de red en uso.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- OK: Adaptador de red.
- 0: Ocurrió un error al obtener el adaptador de red.
Categoría: Información local de red.
----------
#CE
Local $CommCMD="ipconfig" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
$ExCons=_Adsl_ExConsole($CommCMD) ;Obtiene el adaptador de red activo.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al obtener el adaptador de red activo - Devuelve código de error (0).
If StringInStr($ExCons, "sufijo de conexión específica dns", 0, 1, 1)=0 Then Return 0 ;Si no se encuentra la cadena "sufijo de conexión específica dns" - Devuelve código de error (0).
Return StringMid($ExCons, (StringInStr($ExCons, @CRLF, 0, -2, StringInStr($ExCons, "sufijo de conexión específica dns", 0, 1, 1))+21), ((StringInStr($ExCons, @CRLF, 0, -1, StringInStr($ExCons, "sufijo de conexión específica dns", 0, 1, 1))-2)-((StringInStr($ExCons, @CRLF, 0, -2, StringInStr($ExCons, "sufijo de conexión específica dns", 0, 1, 1))+21)))) ;Devuelve código de ejecución correcta ("adaptador de red en uso").
EndFunc
Func _AdslGetLanFileConfig($ArgFileName, $ArgFilePath=@ScriptDir)
#CS
----------
Descripción:
- Devuelve la configuración de red guardada en un archivo ".dmp".
Parámetro(s):
- $ArgFileName: Nombre del archivo ".dmp".
- $ArgFilePath: (@ScriptDir) Ruta del archivo.
Si la ruta no contiene el carácter "\" al final, este será añadido por la función.
Valor(es) de retorno:
- OK: Configuración de red.
- 0: Ocurrió un error al obtener la configuración de red.
Categoría: Gestión de la configuración de la interfaz de red.
----------
#CE
Local $FileHand ;Handle del archivo ".dmp".
Local $BuffDMP ;Buffer para almacenar el contenido del archivo ".dmp".
If ($ArgFileName=="" Or $ArgFilePath=="") Then Return 0 ;Si "$ArgFileName" o "$ArgFilePath" no reciben un valor esperado - Devuelve código de error (0).
If StringRight($ArgFilePath, 1)<>"\" Then ;Si el último carácter de la ruta no es el carácter "\".
$ArgFilePath&="\" ;Añade el carácter "\" a la ruta del archivo.
EndIf ;End -> Si el último carácter de la ruta no es el carácter "\".
If (StringLower(StringRight($ArgFileName, 4))<>".dmp" Or FileExists($ArgFilePath&$ArgFileName)=0) Then Return 0 ;Si la extensión del archivo es distinta de ".dmp" o si no existe el archivo ".dmp" - Devuelve código de error (0).
$FileHand=FileOpen($ArgFilePath&$ArgFileName, 0) ;Abre el archivo ".dmp".
If $FileHand=-1 Then Return 0 ;Si ocurrió un error al abrir el archivo ".dmp" - Devuelve código de error (0).
$BuffDMP=FileRead($FileHand) ;Lee el contenido del archivo ".dmp".
If @Error=1 Then Return 0 ;Si ocurrió un error al leer el contenido del archivo ".dmp" - Devuelve código de error (0).
If FileClose($FileHand)=0 Then Return 0 ;Si ocurrió un error al cerrar el archivo ".dmp" - Devuelve código de error (0).
Return $BuffDMP ;Devuelve código de ejecución correcta ("$BuffDMP").
EndFunc
Func _AdslGetMacIdIpLocal($ArgIp)
#CS
----------
Descripción:
- Devuelve el ID del mac de una dirección IP.
La dirección IP debe ser privada, en la red local.
Parámetro(s):
- $ArgIp: Dirección IP.
Valor(es) de retorno:
- OK: ID del mac de la dirección IP privada.
- 0: Ocurrió un error al obtener el ID del mac de la dirección IP privada.
Categoría: Información local de red.
----------
#CE
Local $StructMacID ;Estructura para el ID del mac.
Local $StructMacIDSize ;Estructura para el tamaño del ID del mac.
Local $Set_MacIDSize ;Ajustar el valor del ID del mac.
Local $CallFuncLib ;Invocar función de librería (DLL).
Local $BuffFuncLib ;Buffer para almacenar el resultado de "$CallFuncLib".
Local $BuffMacID ;Buffer para almacenar el ID del mac.
If _Adsl_CheckIp($ArgIp)=0 Then Return 0 ;Si "$ArgIp" no recibe un valor esperado - Devuelve código de error (0).
$StructMacID=DllStructCreate("byte[6]") ;Crea estructura para el ID del mac.
If ($StructMacID=0 Or @Error<>0) Then Return 0 ;Si ocurrió un error al crear la estructura para el ID del mac - Devuelve código de error (0).
$StructMacIDSize=DllStructCreate("int") ;Crea la estructura para almacenar el tamaño del ID del mac.
If ($StructMacIDSize=0 Or @Error<>0) Then Return 0 ;Si ocurrió un error al crear la estructura para almacenar el tamaño del ID del mac - Devuelve código de error (0).
$Set_MacIDSize=DllStructSetData($StructMacIDSize, 1, 6) ;Ajusta el tamaño del ID del mac.
If ($Set_MacIDSize=0 Or @Error<>0) Then Return 0 ;Si ocurrió un error al ajustar el tamaño del ID del mac - Devuelve código de error (0).
$CallFuncLib=DllCall("Ws2_32.dll", "int", "inet_addr", "str", $ArgIp) ;Invoca la función "inet_addr" de "Ws2_32.dll".
If @Error<>0 Then Return 0 ;Si ocurrió un error al invocar la función "inet_addr" de "Ws2_32.dll" - Devuelve código de error (0).
$BuffFuncLib=$CallFuncLib[0] ;Almacena el resultado de "$CallFuncLib" en el buffer.
$CallFuncLib=DllCall("iphlpapi.dll", "int", "SendARP", "int", $BuffFuncLib, "int", 0, "ptr", DllStructGetPtr($StructMacID), "ptr", DllStructGetPtr($StructMacIDSize)) ;Invoca la función "SendARP" de "iphlpapi.dll".
If ($CallFuncLib[0]<>0 Or @Error<>0) Then Return 0 ;Si ocurrió un error al invocar la función "SendARP" de "iphlpapi.dll" - Devuelve código de error (0).
For $I=1 To 6 Step +1 ;Construye el ID del mac.
If $I>1 Then ;Si "$I" es mayor que "1".
$BuffMacID&=":" ;Añade el carácter ":" al buffer.
EndIf ;End -> Si "$I" es mayor que "1".
$BuffMacID&=Hex(DllStructGetData($StructMacID, 1, $I), 2) ;Recupera el bloque actual del ID del mac, de la estructura.
Next ;End -> Construye el ID del mac.
Return $BuffMacID ;Devuelve código de ejecución correcta ("$BuffMacID").
EndFunc
Func _AdslGetMaskNetwork()
#CS
----------
Descripción:
- Devuelve la máscara de red del equipo.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- OK: Máscara de red.
- 0: Ocurrió un error al obtener la máscara de red.
Categoría: Información local de red.
----------
#CE
Local $CommCMD="ipconfig" ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
$ExCons=_Adsl_ExConsole($CommCMD) ;Obtiene la máscara de red del equipo.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al obtener la máscara de red del equipo - Devuelve código de error (0).
If StringInStr($ExCons, "máscara de subred", 0, 1, 1)=0 Then Return 0 ;Si no se encuentra la cadena "máscara de subred" - Devuelve código de error (0).
Return StringMid($ExCons, (StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "máscara de subred", 0, 1, 1))+1), (StringInStr($ExCons, @CRLF, 0, 1, StringInStr($ExCons, "máscara de subred", 0, 1, 1))-(StringInStr($ExCons, ":", 0, 1, StringInStr($ExCons, "máscara de subred", 0, 1, 1))))) ;Devuelve código de ejecución correcta ("máscara de subred").
EndFunc
Func _AdslGetPhoneCover($ArgNum, $ArgInfType=$_AllInfoPhoneCover)
#CS
----------
Descripción:
- Verifica la cobertura ADSL de un número de teléfono.
El número ha de pertenecer a una línea fija de España.
Parámetro(s):
- $ArgNum: Número de teléfono.
- $ArgInfType: ($_AllInfoPhoneCover) Información a consultar:
- $_AllInfoPhoneCover=Toda.
- $_StateInfoPhoneCover=Estado.
- $_ProvinceInfoPhoneCover=Provincia.
- $_DemarcationInfoPhoneCover=Demarcación.
- $_StationInfoPhoneCover=Central.
Valor(es) de retorno:
- OK: Información del número indicado.
Si $ArgInfType vale $_AllInfoPhoneCover, la función devuelve un array donde:
- [0]=Cantidad de elementos del array.
- [1]=Estado.
- [2]=Provincia.
- [3]=Demarcación.
- [4]=Central.
- 0: Ocurrió un error al obtener la información.
Categoría: Información remota de usuarios.
----------
#CE
Local $GetPhoneInf ;Consultar la información de "$ArgNum".
Local $SVHost="adsl.interbusca.com" ;Host del servidor de consulta.
Local $SVPort=80 ;Puerto de conexión en el servidor de consulta.
Local $SVPathDoc="/herramientas/disponibilidad-adsl.html" ;Ruta del documento html en el servidor de consulta.
Local $SVConsMethod=1 ;Tipo de consulta (paso de parámetros).
Local $HUsAg="MSIE" ;Contenido de la cabecera "User-Agent".
Local $HCT="application/x-www-form-urlencoded" ;Contenido de la cabecera "Content-Type".
Local $HCLength=18 ;Contenido de la cabecera "Content-Length".
Local $HConn="close" ;Contenido de la cabecera "Connection".
Local $ConsParam="telefono" ;Parámetro a enviar al servidor.
Local $StripTagsDoc ;Eliminar código HTML, JAVASCRIPT, CSS y convertir carácteres HTML especiales en carácteres ASCII, de la respuesta del servidor.
Local $Ret[5] ;Array para devolver toda la información de "$ArgNum".
If (($ArgNum=="" Or StringIsDigit($ArgNum)=0) Or (($ArgInfType=="") Or (StringIsDigit($ArgInfType)=0) Or (Number($ArgInfType)<$_AllInfoPhoneCover Or Number($ArgInfType)>$_StationInfoPhoneCover))) Then Return 0 ;Si "$ArgNum" o "$ArgInfType" no reciben un valor esperado - Devuelve código de error(0).
$GetPhoneInf=_Adsl_ShockConnSV($SVHost, $SVPort, 4096, $SVPathDoc, $SVConsMethod, "", "", "", $HUsAg, $HCT, "", $SVHost, $HCLength, $HConn, "", "", $ConsParam, $ArgNum) ;Obtiene la información de "$ArgNum".
If $GetPhoneInf==0 Then Return 0 ;Si ocurrió un error al consultar la información de "$ArgNum" - Devuelve código de error (0).
$StripTagsDoc=_Adsl_WebCodeStrip($GetPhoneInf, 1, 1, 1, 1, 1, 1, "", "", 0, 0) ;Elimina código HTML, JAVASCRIPT, CSS y convierte carácteres HTML especiales en carácteres ASCII.
If $StripTagsDoc==0 Then Return 0 ;Si ocurrió un error al eliminar código HTML, JAVASCRIPT, CSS o convertir los carácteres HTML especiales en carácteres ASCII - Devuelve código de error (0).
If (StringInStr($StripTagsDoc, "para el teléfono "&$ArgNum&" no hay información disponible", 0, 1, 1)<>0 Or StringInStr($StripTagsDoc, "disponibilidad para el teléfono "&$ArgNum, 0, 1, 1)=0) Then Return 0 ;Si no hay información de $ArgNum - Devuelve código de error (0).
Switch($ArgInfType) ;Comprobar la información a devolver.
Case $_AllInfoPhoneCover ;Devolver "estado", "provincia", "demarcación" y "central".
If (StringInStr($StripTagsDoc, "estado", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "provincia", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "central", 0, 2, 1)=0) Then Return 0 ;Si no se encuentra la información de "estado", "provincia", "demarcación" o "central" - Devuelve código de error (0).
$Ret[0]=4 ;Pone la cantidad de elementos del array a retornar en el elemento [0] de este.
$Ret[1]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "estado", 0, 1, 1)+8), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "estado", 0, 1, 1)+8))-(StringInStr($StripTagsDoc, "estado", 0, 1, 1)+8))) ;Añade información de "estado" a "$Ret".
$Ret[2]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "provincia", 0, 1, 1)+11), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "provincia", 0, 1, 1)+11))-(StringInStr($StripTagsDoc, "provincia", 0, 1, 1)+11))) ;Añade información de "provincia" a "$Ret".
$Ret[3]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)+13), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)+13))-(StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)+13))) ;Añade información de "demarcación" a "$Ret".
$Ret[4]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "central", 0, 2, 1)+9), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "central", 0, 2, 1)+9))-(StringInStr($StripTagsDoc, "central", 0, 2, 1)+9))) ;Añade información de "central" a "$Ret".
If ($Ret[0]=="" Or $Ret[1]=="" Or $Ret[2]=="" Or $Ret[3]=="" Or $Ret[4]=="") Then Return 0 ;Si ocurrió un error al poner la información de "$ArgNum" en "$Ret" - Devuelve código de error (0).
Return $Ret ;Devuelve código de ejecución correcta ("$Ret").
Case $_StateInfoPhoneCover ;Devolver "estado".
If StringInStr($StripTagsDoc, "estado", 0, 1, 1)=0 Then Return 0 ;Si no se encuentra la información de "estado" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "estado", 0, 1, 1)+8), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "estado", 0, 1, 1)+8))-(StringInStr($StripTagsDoc, "estado", 0, 1, 1)+8))) ;Devuelve código de ejecución correcta ("estado").
Case $_ProvinceInfoPhoneCover ;Devolver "provincia".
If StringInStr($StripTagsDoc, "provincia", 0, 1, 1)=0 Then Return 0 ;Si no se encuentra la información de "provincia" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "provincia", 0, 1, 1)+11), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "provincia", 0, 1, 1)+11))-(StringInStr($StripTagsDoc, "provincia", 0, 1, 1)+11))) ;Devuelve código de ejecución correcta ("provincia").
Case $_DemarcationInfoPhoneCover ;Devolver "demarcación".
If StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)=0 Then Return 0 ;Si no se encuentra la información de "demarcación" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)+13), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)+13))-(StringInStr($StripTagsDoc, "demarcación", 0, 1, 1)+13))) ;Devuelve código de ejecución correcta ("demarcación").
Case $_StationInfoPhoneCover ;Devolver "central".
If StringInStr($StripTagsDoc, "central", 0, 2, 1)=0 Then Return 0 ;Si no se encuentra la información de "central" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "central", 0, 2, 1)+9), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "central", 0, 2, 1)+9))-(StringInStr($StripTagsDoc, "central", 0, 2, 1)+9))) ;Devuelve código de ejecución correcta ("central").
EndSwitch ;End -> Comprobar la información a devolver.
EndFunc
Func _AdslGetPhoneMobileInfo($ArgNum, $ArgInfType=$_AllInfoMobilePhone)
#CS
----------
Descripción:
- Devuelve información sobre una línea de teléfono móvil de España.
Parámetro(s):
- $ArgNum: Número de la línea móvil a consultar.
- $ArgInfType: ($_AllInfoMobilePhone) Información a consultar:
- $_AllInfoMobilePhone=Toda.
- $_ACodeInfoMobilePhone=Prefijo.
- $_TechnologyInfoMobilePhone=Tecnología del servicio.
- $_StateInfoMobilePhone=Estado.
- $_AssignDateInfoMobilePhone=Fecha de asignación.
- $_OperatorInfoMobilePhone=Operador.
- $_TradeNameInfoMobilePhone=Marca comercial del operador.
Valor(es) de retorno:
- OK: Información de la línea móbil.
Si $ArgInfType vale $_AllInfoMobilePhone, la función devuelve un array donde:
- [0]=Cantidad de elementos del array.
- [1]=Prefijo.
- [2]=Tecnología del servicio.
- [3]=Estado.
- [4]=Fecha de asignación.
- [5]=Operador.
- [6]=Marca comercial del operador.
- 0: Ocurrió un error al obtener la información.
Categoría: Información remota de usuarios.
----------
#CE
Local $GetPhoneMobileInf ;Consultar la información de "$ArgNum".
Local $SVHost="www.gsmspain.com" ;Host del servidor de consulta.
Local $SVPort=80 ;Puerto de conexión en el servidor de consulta.
Local $SVPathDoc="/prefijos/index.php" ;Ruta del recurso en el servidor de consulta.
Local $SVConsMethod=1 ;Tipo de consulta (paso de parámetros).
Local $HRef="http://www.gsmspain.com/prefijos/" ;Contenido de la cabecera "Referer".
Local $HUsAg="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" ;Contenido de la cabecera "User-Agent".
Local $HCT="application/x-www-form-urlencoded" ;Contenido de la cabecera "Content-Type".
Local $HHost="www.gsmspain.com" ;Contenido de la cabecera "Host".
Local $HCLength=13 ;Contenido de la cabecera "Content-Length".
Local $HConn="Close" ;Contenido de la cabecera "Connection".
Local $ConsParam="num" ;Parámetro a enviar al servidor.
Local $StripTagsDoc ;Eliminar código HTML, JAVASCRIPT, CSS y convertir carácteres HTML especiales en carácteres ASCII, de la respuesta del servidor.
Local $Ret[7] ;Array para devolver toda la información de "$ArgNum".
If ((($ArgNum=="") Or (StringLen($ArgNum)<>9 Or (StringMid($ArgNum, 1, 1)<>"6" And StringMid($ArgNum, 1, 1)<>"7"))) Or (Number($ArgInfType)<>$_AllInfoMobilePhone And Number($ArgInfType)<>$_ACodeInfoMobilePhone And Number($ArgInfType)<>$_TechnologyInfoMobilePhone And Number($ArgInfType)<>$_StateInfoMobilePhone And Number($ArgInfType)<>$_AssignDateInfoMobilePhone And Number($ArgInfType)<>$_OperatorInfoMobilePhone And Number($ArgInfType)<>$_TradeNameInfoMobilePhone)) Then Return 0 ;Si "$ArgNum" o "$ArgInfType" no reciben un valor esperado - Devuelve código de error (0).
$GetPhoneMobileInf=_Adsl_ShockConnSV($SVHost, $SVPort, 4096, $SVPathDoc, $SVConsMethod, "", $HRef, "", $HUsAg, $HCT, "", $SVHost, $HCLength, $HConn, "", "", $ConsParam, $ArgNum) ;Obtiene la información de "$ArgNum".
If $GetPhoneMobileInf==0 Then Return 0 ;Si ocurrió un error al consultar la información de "$ArgNum" - Devuelve código de error (0).
$StripTagsDoc=_Adsl_WebCodeStrip($GetPhoneMobileInf, 1, 1, 1, 1, 1, 1, "", "", 0, 0) ;Elimina código HTML, JAVASCRIPT, CSS y convierte carácteres HTML especiales en carácteres ASCII.
If $StripTagsDoc==0 Then Return 0 ;Si ocurrió un error al eliminar código HTML, JAVASCRIPT, CSS o convertir los carácteres HTML especiales en carácteres ASCII - Devuelve código de error (0).
If StringInStr($StripTagsDoc, "el numero "&$ArgNum&" no es de ningún operador español o es de nueva adjudicación", 0, 1, 1)<>0 Then Return 0 ;Si ocurrió un error al consultar la información de "$ArgNum" - Devuelve código de error (0).
Switch($ArgInfType) ;Comprobar la información a devolver.
Case $_AllInfoMobilePhone ;Devolver "prefijo", "tecnología del servicio", "estado", "fecha de asignación", "operador" y "marca comercial del operador".
If (StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "estado:", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "operador:", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)=0) Then Return 0 ;Si no se encuentra la información de "prefijo", "tecnología del servicio", "estado", "fecha de asignación", "operador" o "marca comercial del operador" - Devuelve código de error (0).
$Ret[0]=6 ;Pone la cantidad de elementos del array a retornar en el elemento [0] de este.
$Ret[1]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)+10), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)+10))-(StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)+10))) ;Añade información de "prefijo" a "$Ret".
$Ret[2]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)+22), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)+22))-(StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)+22))) ;Añade información de "tecnología del servicio" a "$Ret".
$Ret[3]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "estado:", 0, 1, 1)+9), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "estado:", 0, 1, 1)+9))-(StringInStr($StripTagsDoc, "estado:", 0, 1, 1)+9))) ;Añade información de "estado" a "$Ret".
$Ret[4]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)+19), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)+19))-(StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)+19))) ;Añade información de "fecha de asignación" a "$Ret".
$Ret[5]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "operador:", 0, 1, 1)+11), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "operador:", 0, 1, 1)+11))-(StringInStr($StripTagsDoc, "operador:", 0, 1, 1)+11))) ;Añade información de "operador" a "$Ret".
$Ret[6]=StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)+18), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)+18))-(StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)+18))) ;Añade información de "marca comercial del operador" a "$Ret".
If ($Ret[0]=="" Or $Ret[1]=="" Or $Ret[2]=="" Or $Ret[3]=="" Or $Ret[4]=="" Or $Ret[5]=="" Or $Ret[6]=="") Then Return 0 ;Si ocurrió un error al poner la información de "$ArgNum" en "$Ret" - Devuelve código de error (0).
Return $Ret ;Devuelve código de ejecución correcta ("$Ret").
Case $_ACodeInfoMobilePhone ;Devolver "prefijo".
If (StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)=0) Then Return 0 ;Si no se encuentra la información de "prefijo" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)+10), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)+10))-(StringInStr($StripTagsDoc, "prefijo:", 0, 1, 1)+10))) ;Devuelve código de ejecución correcta ("prefijo").
Case $_TechnologyInfoMobilePhone ;Devolver "tecnología de servicio".
If (StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)=0) Then Return 0 ;Si no se encuentra la información de "tecnología del servicio" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)+22), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)+22))-(StringInStr($StripTagsDoc, "tecnología servicio:", 0, 1, 1)+22))) ;Devuelve código de ejecución correcta ("tecnología del servicio").
Case $_StateInfoMobilePhone ;Devolver "estado".
If (StringInStr($StripTagsDoc, "estado:", 0, 1, 1)=0) Then Return 0 ;Si no se encuentra la información de "estado" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "estado:", 0, 1, 1)+9), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "estado:", 0, 1, 1)+9))-(StringInStr($StripTagsDoc, "estado:", 0, 1, 1)+9))) ;Devuelve código de ejecución correcta ("estado").
Case $_AssignDateInfoMobilePhone ;Devolver "fecha de asignación".
If (StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)=0) Then Return 0 ;Si no se encuentra la información de "fecha de asignación" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)+19), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)+19))-(StringInStr($StripTagsDoc, "fecha asignación:", 0, 1, 1)+19))) ;Devuelve código de ejecución correcta ("fecha de asignación").
Case $_OperatorInfoMobilePhone ;Devolver "operador".
If (StringInStr($StripTagsDoc, "operador:", 0, 1, 1)=0) Then Return 0 ;Si no se encuentra la información de "operador" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "operador:", 0, 1, 1)+11), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "operador:", 0, 1, 1)+11))-(StringInStr($StripTagsDoc, "operador:", 0, 1, 1)+11))) ;Devuelve código de ejecución correcta ("operador").
Case $_TradeNameInfoMobilePhone ;Devolver "marca comercial del operador".
If (StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)=0) Then Return 0 ;Si no se encuentra la información de "marca comercial del operador" - Devuelve código de error (0).
Return StringMid($StripTagsDoc, (StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)+18), (StringInStr($StripTagsDoc, @CRLF, 0, 1, (StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)+18))-(StringInStr($StripTagsDoc, "marca comercial:", 0, 1, 1)+18))) ;Devuelve código de ejecución correcta ("marca comercial del operador").
EndSwitch ;End -> Comprobar la información a devolver.
EndFunc
Func _AdslGetProxy()
#CS
Descripción:
- Comprueba si se navega a través de proxy.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- 1: Se navega a través de proxy.
- 0: No se navega a través de proxy.
Categoría: Información remota de usuarios.
----------
#CE
Local $GetProxyInf ;Consultar si se navega a través de proxy.
Local $SVHost="www.cualesmiip.com" ;Host del servidor de consulta.
Local $SVPort=80 ;Puerto de conexión en el servidor de consulta.
Local $SVPathDoc="/" ;Ruta del documento html en el servidor de consulta.
Local $SVConsMethod=0 ;Tipo de consulta (paso de parámetros).
Local $HUsAg="MSIE" ;Contenido de la cabecera "User-Agent".
Local $HConn="close" ;Contenido de la cabecera "Connection".
Local $StripTagsDoc ;Eliminar código HTML, JAVASCRIPT, CSS y convertir carácteres HTML especiales en carácteres ASCII, de la respuesta del servidor.
$GetProxyInf=_Adsl_ShockConnSV($SVHost, $SVPort, 4096, $SVPathDoc, $SVConsMethod, "", "", "", $HUsAg, "", "", $SVHost, "", $HConn, "", "", "", "") ;Consulta si se navega a través de proxy.
If $GetProxyInf==0 Then Return 0 ;Si ocurrió un error al consultar si se navega a través de proxy - Devuelve código de error (0).
$StripTagsDoc=_Adsl_WebCodeStrip($GetProxyInf, 1, 1, 1, 1, 1, 1, "", "", 0, 0) ;Elimina código HTML, JAVASCRIPT, CSS y convierte carácteres HTML especiales en carácteres ASCII.
If $StripTagsDoc==0 Then Return 0 ;Si ocurrió un error al eliminar código HTML, JAVASCRIPT, CSS o convertir los carácteres HTML especiales en carácteres ASCII - Devuelve código de error (0).
If (StringInStr($StripTagsDoc, "proxy", 0, 1, 1)=0 Or StringInStr($StripTagsDoc, "no navegas a través de proxy", 0, 1, 1)<>0) Then Return 0 ;Si no se navega a través de proxy - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslGetPublicIp()
#CS
----------
Descripción:
- Devuelve la dirección IP pública.
Parámetro(s):
- Ninguno.
Valor(es) de retorno:
- OK: Dirección IP.
- 0: Ocurrió un error al obtener la dirección IP.
Categoría: Información remota de usuarios.
----------
#CE
Local $GetPublicIp ;Consultar la información de "$ArgNum".
Local $SVHost="checkip.dyndns.org" ;Host del servidor de consulta.
Local $SVPort=80 ;Puerto de conexión en el servidor de consulta.
Local $SVPathDoc="/" ;Ruta del documento html en el servidor de consulta.
Local $SVConsMethod=0 ;Tipo de consulta (paso de parámetros).
Local $HUsAg="MSIE" ;Contenido de la cabecera "User-Agent".
Local $HConn="close" ;Contenido de la cabecera "Connection".
Local $StripTagsDoc ;Eliminar código HTML, JAVASCRIPT, CSS y convertir carácteres HTML especiales en carácteres ASCII, de la respuesta del servidor.
$GetPublicIp=_Adsl_ShockConnSV($SVHost, $SVPort, 4096, $SVPathDoc, $SVConsMethod, "", "", "", $HUsAg, "", "", $SVHost, "", $HConn, "", "", "", "") ;Obtiene la IP pública.
If $GetPublicIp==0 Then Return 0 ;Si ocurrió un error al obtener la IP pública - Devuelve código de error (0).
$StripTagsDoc=_Adsl_WebCodeStrip($GetPublicIp, 1, 1, 1, 1, 1, 1, "", "", 0, 0) ;Elimina código HTML, JAVASCRIPT, CSS y convierte carácteres HTML especiales en carácteres ASCII.
If $StripTagsDoc==0 Then Return 0 ;Si ocurrió un error al eliminar código HTML, JAVASCRIPT, CSS o convertir los carácteres HTML especiales en carácteres ASCII - Devuelve código de error (0).
If (StringInStr($StripTagsDoc, "current ip address: ", 0, 1, 1)=0 Or StringTrimLeft($StripTagsDoc, (StringInStr($StripTagsDoc, "current ip address: ", 0, 1, 1)+19))=="") Then Return 0 ;Si no se encuentra la cadena "current ip address: " en la respuesta del servidor de consulta o no se encuentra la dirección IP - Devuelve código de error (0).
Return StringTrimLeft($StripTagsDoc, (StringInStr($StripTagsDoc, "current ip address: ", 0, 1, 1)+19)) ;Devuelve código de ejecución correcta ("IP pública").
EndFunc
Func _AdslIsLocalIpEnable($ArgIp)
#CS
----------
Descripción:
- Comprueba si una dirección IP privada está en uso en la red local.
Requiere que el firewall de los demás equipos de la red local tengan configurado el tráfico ICMP correctamente.
Parámetro(s):
- $ArgIp: Dirección IP privada.
Valor(es) de retorno:
- 1: La dirección IP está en uso en la red local.
- 0: La dirección IP no está en uso en la red local.
- -1: ({ESPECIAL}) Ocurrió un error al comprobar si la dirección IP privada está en uso en la red local.
Categoría: Información local de red.
----------
#CE
Local $PingIP ;Comprobar si "$ArgIP" está en uso en la red local.
If ($ArgIp=="" Or _Adsl_CheckIp($ArgIp, 1)=0) Then Return -1 ;Si "$ArgIp" no recibe un valor esperado - Devuelve código de error (-1).
$PingIP=Ping($ArgIp, 25) ;Comprueba si "$ArgIP" está en uso en la red local.
If $PingIP<>0 Then Return 1 ;Si "$ArgIp" está en uso en la red local - Devuelve código de ejecución correcta (1).
Return 0 ;Si "$ArgIp" no está en uso en la red local - Devuelve código de ejecución correcta (0).
EndFunc
Func _AdslSaveLanFileConfig($ArgFileName, $ArgFilePath=@ScriptDir)
#CS
----------
Descripción:
- Guarda la configuración de red actual en un archivo ".dmp".
Parámetro(s):
- $ArgFileName: Nombre del archivo ".dmp".
- $ArgFilePath: (@ScriptDir) Ruta del archivo.
Si la ruta no contiene el carácter "\" al final, este será añadido por la función.
Valor(es) de retorno:
- 1: La configuración se guardó correctamente.
- 0: Ocurrió un error al guardar la configuración.
Categoría: Gestión de la configuración de la interfaz de red.
----------
#CE
Local $CommCMD="netsh dump > " ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ($ArgFileName=="" Or $ArgFilePath=="") Then Return 0 ;Si "$ArgFileName" o "$ArgFilePath" no reciben un valor esperado - Devuelve código de error (0).
If StringRight($ArgFilePath, 1)<>"\" Then ;Si el último carácter de la ruta no es el carácter "\".
$ArgFilePath&="\" ;Añade el carácter "\" a la ruta del archivo.
EndIf ;End -> Si el último carácter de la ruta no es el carácter "\".
If StringLower(StringRight($ArgFileName, 4))<>".dmp" Then Return 0 ;Si la extensión del archivo es distinta de ".dmp" - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD&$ArgFilePath&$ArgFileName) ;Guarda la configuración de red en el archivo ".dmp".
If $ExCons==0 Then Return 0 ;Si ocurrió un error al guardar la configuración de red - Devuelve código de error (0).
If StringInStr($ExCons, "no se encuentra el comando:"&$CommCMD&$ArgFilePath&$ArgFileName, 0, 1, 1)<>0 Then Return 0 ;Si la línea de comandos del sistema no reconoce el comando enviado - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta ("1").
EndFunc
Func _AdslSetDns($ArgLan, $ArgType=$_StaticDnsConfig, $ArgSysReset=$_RestartValParam, $ArgPrimaryDNS="", $ArgSecondaryDNs="")
#CS
----------
Descripción:
- Ajusta la configuración de los DNS en el adaptador de red activo.
Parámetro(s):
- $ArgLan: Nombre del adaptador de red.
- $ArgType: ($_StaticDnsConfig) Tipo de configuración:
- $_StaticDnsConfig=Estática.
- $_DhcpDnsConfig=DHCP.
- $ArgSysReset: ($_RestartValParam) Reinicio del sistema:
- $_NotRestartValParam=No reiniciar.
- $_RestartValParam=Reiniciar.
La configuración de un dispositivo de red requiere en ocasiones reiniciar el sistema para que los cambios surjan efecto.
- $ArgPrimaryDNS: ("") DNS preferido.
- ""=Ningún DNS.
Si $ArgType vale "$_StaticDnsConfig", este parámetro debe recibir un valor.
Si $ArgType vale "$_DhcpDnsConfig", este parámetro será ignorado y puede valer "".
- $ArgSecondaryDNS: ("") DNS alternativo.
- ""=Ningún DNS.
Si $ArgType vale "$_StaticDnsConfig", este parámetro debe recibir un valor.
Si $ArgType vale "$_DhcpDnsConfig", este parámetro será ignorado y puede valer "".
Valor(es) de retorno:
- 1: Los DNS se configuraron correctamente.
- 0: Ocurrió un error al configurar los DNS.
Categoría: Configuración de la interfaz de red.
----------
#CE
Local $CommCMD="netsh interface ip set dns " ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
Local $SysRestart ;Reiniciar el sistema.
If (($ArgLan=="") Or (Number($ArgType)<>$_StaticDnsConfig And Number($ArgType)<>$_DhcpDnsConfig) Or (Number($ArgSysReset)<>$_NotRestartValParam And Number($ArgSysReset)<>$_RestartValParam) Or ((Number($ArgType)=$_StaticDnsConfig) And ($ArgPrimaryDNS=="" Or $ArgSecondaryDNS==""))) Then Return 0 ;Si "$ArgLan", "$ArgType", "$ArgSysReset", "$ArgPrimaryDNS" o "$ArgSecondaryDNS" reciben un valor no esperado - Devuelve código de error (0).
Switch($ArgType) ;Verifica el tipo de configuración.
Case $_StaticDnsConfig ;Estática.
$ExCons=_Adsl_ExConsole($CommCMD&"""name="&$ArgLan&""" source=""static"" addr="""&$ArgPrimaryDNS&""" register=primary""") ;Configura "$ArgPrimaryDNS" en "$ArgLan" como estático.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al configurar "$ArgPrimaryDNS" en "$ArgLan" como estático - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole("netsh interface ip add dns name="""&$ArgLan&""" addr="""&$ArgSecondaryDNS&""" index=""2""") ;Configura "$ArgSecondaryDNS" en "$ArgLan" como estático.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al configurar "$ArgSecondaryDNS" en "$ArgLan" como estático - Devuelve código de error (0).
Case $_DhcpDnsConfig ;DHCP.
$ExCons=_Adsl_ExConsole($CommCMD&"""name="&$ArgLan&""" source=dhcp") ;Ajusta la configuración de "$ArgLan" como DHCP.
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al ajustar la configuración de "$ArgLan" como DHCP - Devuelve código de error (0).
EndSwitch ;End -> Verifica el tipo de configuración.
If $ArgSysReset=$_RestartValParam Then ;Reinicio del sistema.
$SysRestart=ShutDown(22) ;Fuerza el reinicio del sistema.
If $SysRestart=0 Then Return 0 ;Si ocurrió un error al reiniciar el sistema - Devuelve código de error (0).
EndIf ;End -> Reinicio del sistema.
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslSetLanConfig($ArgLan, $ArgType=$_StaticLanConfig, $ArgSysReset=$_RestartValParam, $ArgIp="192.168.1.2", $ArgMask="255.255.255.0", $ArgGateway="192.168.1.1", $ArgMetric=1)
#CS
----------
Descripción:
- Ajusta la configuración de un adaptador de red.
Parámetro(s):
- $ArgLan: Nombre del adaptador de red.
- $ArgType: ($_StaticLanConfig) Tipo de configuración:
- $_StaticLanConfig=Estática.
- $_DhcpLanConfig=DHCP.
- $ArgSysReset: ($_RestartValParam) Reinicio del sistema:
- $_NotRestartValParam=No reiniciar.
- $_RestartValParam=Reiniciar.
La configuración de un dispositivo de red requiere en ocasiones reiniciar el sistema para que los cambios surjan efecto.
- $ArgIp: ("192.168.1.2") Dirección IP privada en la red local.
- $ArgMask: ("255.255.255.0") Máscara de subred.
- $ArgGateway: ("192.168.1.1") Puerta de enlace predeterminada.
- ""|"none"=Ninguna puerta de enlace predeterminada.
- $ArgMetric: (1) Metric del adaptador de red.
Si $ArgGateway vale "" o "none", este parámetro será ignorado.
Valor(es) de retorno:
- 1: El adaptador de red se configuró correctamente.
- 0: Ocurrió un error al configurar el adaptador de red.
Categoría: Configuración de la interfaz de red.
----------
#CE
Local $CommCMD="netsh interface ip set address " ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
Local $SysRestart ;Reiniciar el sistema.
Local $PingIP ;Comprobar si "$ArgIP" está en uso en la red local.
If (($ArgLan=="") Or (Number($ArgType)<>$_StaticLanConfig And Number($ArgType)<>$_DhcpLanConfig) Or (Number($ArgSysReset)<>$_NotRestartValParam And Number($ArgSysReset)<>$_RestartValParam) Or ($ArgIp=="" Or _Adsl_CheckIp($ArgIp, 1)=0) Or ($ArgMask=="") Or ($ArgMetric="")) Then Return 0 ;Si "$ArgLan", "$ArgType", "$ArgIp", "$ArgMask" o "$ArgMetric" no reciben un valor esperado - Devuelve código de error (0).
Switch($ArgType) ;Verifica el tipo de configuración.
Case $_StaticLanConfig ;Estática.
$CommCMD&="name="""&$ArgLan&""" source=""static"" addr="""&$ArgIp&""" mask="""&$ArgMask&"""" ;Añade el nombre del adaptador de red a configurar, tipo de configuración, dirección IP y máscara de subred, a la configuración del adaptador de red a configurar.
If ($ArgGateway<>"" And StringLower($ArgGateway)<>"none") Then ;Si "$ArgGateway" recibe un valor distinto de "none".
$CommCMD&=" gateway="""&$ArgGateway&"""" ;Añade la puerta de enlace, a la configuración del adaptador de red a configurar.
$CommCMD&=" gwmetric="""&$ArgMetric&"""" ;Añade la métrica del adaptador de red, a la configuración del adaptador de red a configurar.
ElseIf ($ArgGateway=="" Or StringLower($ArgGateway)=="none") Then ;Si "$ArgGateway" recibe "none" o no recibe ningún valor.
$CommCMD&=" gateway=""none""" ;Añade "none" como puerta de enlace, a la configuración del adaptador de red a configurar.
EndIf ;End -> si "$ArgGateway" recibe un valor distinto de "none".
$PingIP=Ping($ArgIp, 25) ;Comprueba si "$ArgIP" está en uso en la red local.
If $PingIP<>0 Then Return 0 ;Si ocurrió un error al comprobar la disponibilidad de "$ArgIp" en la red local o esta ya está en uso - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD) ;Ajusta la configuración de "$ArgLan" como estática.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al ajustar la configuración de "$ArgLan" como estática - Devuelve código de error (0).
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al configurar "$ArgLan" como DHCP - Devuelve código de error (0).
Case $_DhcpLanConfig ;DHCP.
$ExCons=_Adsl_ExConsole($CommCMD&"""name="&$ArgLan&""" source=dhcp") ;Ajusta la configuración de "$ArgLan" como DHCP.
If $ExCons==0 Then Return 0 ;Si ocurrió un error al ajustar la configuración de "$ArgLan" como DHCP - Devuelve código de error (0).
If ($ExCons<>@CRLF And StringInStr($ExCons, "aceptar", 0, 1, 1)=0) Then Return 0 ;Si ocurrió un error al configurar "$ArgLan" como DHCP - Devuelve código de error (0).
EndSwitch ;End -> Verifica el tipo de configuración.
If $ArgSysReset=$_RestartValParam Then ;Reinicio del sistema.
$SysRestart=ShutDown(22) ;Fuerza el reinicio del sistema.
If $SysRestart=0 Then Return 0 ;Si ocurrió un error al reiniciar el sistema - Devuelve código de error (0).
EndIf ;End -> Reinicio del sistema.
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
Func _AdslSetLanFileConfig($ArgFileName, $ArgFilePath=@ScriptDir)
#CS
----------
Descripción:
- Ajusta la configuración de red a partir de un archivo ".dmp".
Parámetro(s):
- $ArgFileName: Nombre del archivo ".dmp".
- $ArgFilePath: (@ScriptDir) Ruta del archivo.
Si la ruta no contiene el carácter "\" al final, este será añadido por la función.
Valor(es) de retorno:
- 1: La configuración se ajustó correctamente.
- 0: Ocurrió un error al ajustar la configuración.
Categoría: Gestión de la configuración de la interfaz de red.
----------
#CE
Local $CommCMD="netsh exec > " ;Comando a enviar a la línea de comandos del sistema.
Local $ExCons ;Enviar comando a la línea de comandos del sistema.
If ($ArgFileName=="" Or $ArgFilePath=="") Then Return 0 ;Si "$ArgFileName" o "$ArgFilePath" no reciben un valor esperado - Devuelve código de error (0).
If StringRight($ArgFilePath, 1)<>"\" Then ;Si el último carácter de la ruta no es el carácter "\".
$ArgFilePath&="\" ;Añade el carácter "\" a la ruta del archivo.
EndIf ;End -> Si el último carácter de la ruta no es el carácter "\".
If (StringLower(StringRight($ArgFileName, 4))<>".dmp" Or FileExists($ArgFilePath&$ArgFileName)=0) Then Return 0 ;Si la extensión del archivo es distinta de ".dmp" o si no existe el archivo ".dmp" - Devuelve código de error (0).
$ExCons=_Adsl_ExConsole($CommCMD&$ArgFilePath&$ArgFileName) ;Ajusta la configuración de red a partir del archivo ".dmp".
If $ExCons==0 Then Return 0 ;Si ocurrió un error al ajustar la configuración de red a partir del archivo ".dmp" - Devuelve código de error (0).
If (StringInStr($ExCons, "no se encuentra el comando:"&$CommCMD&$ArgFilePath&$ArgFileName, 0, 1, 1)<>0 Or StringInStr($ExCons, "interfaz especificada no válida", 0, 1, 1)<>0) Then Return 0 ;Si la línea de comandos del sistema no reconoce el comando enviado - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta ("1").
EndFunc
Func _AdslSetSpeedAcelerator($ArgConnType=$_AdslAceleratorSpeed, $ArgTRestart=$_NotRestartValParam)
#CS
----------
Descripción:
- Aumenta la velocidad de la conexión a internet.
Parámetro(s):
- $ArgConnType: ($_AdslAceleratorSpeed) Tipo de conexión:
- $_AdslAceleratorSpeed=ADSL.
- $_ModemAceleratorSpeed=Módem.
- $ArgTRestart: ($_NotRestartValParam) Tiempo de espera para el reinicio del equipo.
"$_NotRestartValParam" no reinicia el equipo.
Este valor debe ser expresado en milisegundos.
Valor(es) de retorno:
- 1: La velocidad de la conexión a internet se aumentó correctamente.
Debe reiniciarse el equipo para aplicar los cambios efectuados en el sistema.
- 0: Ocurrió un error al aumentar la velocidad de la conexión a internet.
Categoría: Configuración de red.
----------
#CE
Local $RegWriteVal ;Escribir en el regedit.
Local $SysRestart ;Reiniciar el sistema.
If ((Number($ArgConnType)<>$_AdslAceleratorSpeed And Number($ArgConnType)<>$_ModemAceleratorSpeed) Or ($ArgTRestart=="" Or (StringIsDigit($ArgTRestart)=0 Or Number($ArgTRestart)<$_NotRestartValParam))) Then Return 0 ;Si "$ArgConnType" o "$ArgTRestart" no reciben un valor esperado - Devuelve código de error (0).
Switch($ArgConnType) ;Verificar tipo de conexión.
Case $_AdslAceleratorSpeed ;Si el tipo de conexión es "adsl".
$RegWriteVal=RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "MaxConnectionsPerServer", "REG_DWORD", "20") ;Modifica valor del regedit.
If $RegWriteVal=0 Then Return 0 ;Si ocurrió un error al modificar el valor del regedit - Devuelve código de error (0).
$RegWriteVal=RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "MaxConnectionsPer1_0Server", "REG_DWORD", "20") ;Modifica valor del regedit.
If $RegWriteVal=0 Then Return 0 ;Si ocurrió un error al modificar el valor del regedit - Devuelve código de error (0).
Case $_ModemAceleratorSpeed ;Si el tipo de conexión es "módem".
$RegWriteVal=RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "MaxConnectionsPerServer", "REG_DWORD", "4") ;Modifica valor de regedit.
If $RegWriteVal=0 Then Return 0 ;Si ocurrió un error al modificar el valor del regedit - Devuelve código de error (0).
$RegWriteVal=RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "MaxConnectionsPer1_0Server", "REG_DWORD", "8") ;Modifica valor de regedit.
If $RegWriteVal=0 Then Return 0 ;Si ocurrió un error al modificar el valor del regedit - Devuelve código de error (0).
EndSwitch ;End -> Verificar tipo de conexión.
Sleep($ArgTRestart) ;Espera "$ArgTRestart" milisegundos para reiniciar el sistema.
If $ArgTRestart>$_NotRestartValParam Then ;Reinicio del sistema.
$SysRestart=ShutDown(22) ;Fuerza el reinicio del sistema.
If $SysRestart=0 Then Return 0 ;Si ocurrió un error al reiniciar el sistema - Devuelve código de error (0).
EndIf ;End -> Reinicio del sistema.
Return 1 ;Devuelve código de ejecución correcta (1).
EndFunc
;Funciones internas:
Func _Adsl_CheckIp($ArgIP, $ArgType=$_PublicIpChk)
#CS
----------
Descripción:
- Comprueba la sintaxis de una dirección IP.
Parámetro(s):
- $ArgIP: Dirección IP.
- $ArgType: ($_PublicIpChk) Tipo de dirección IP:
- $_PublicIpChk=Pública.
- $_PrivateIpChk=Privada.
Valor(es) de retorno:
- 1: La sintaxis de la dirección IP indicada es correcta.
- 0: La sintaxis de la dirección IP indicada no es correcta.
Categoría: Función interna.
----------
#CE
Local $SplitSTR ;Divide cadena por separador (.).
If (($ArgIP=="") Or (Number($ArgType)<>$_PublicIpChk And Number($ArgType)<>$_PrivateIpChk)) Then Return 0 ;Si "$ArgIP" o "$ArgType" no reciben un valor esperado - Devuelve código de error (0).
$SplitSTR=StringSplit($ArgIP, ".") ;Divide la dirección IP recibida por puntos (.).
If (Not IsArray($SplitSTR) Or $SplitSTR[0]<>4) Then Return 0 ;Si "$SplitSTR" no es un array o si la cantidad de elementos de este es distinto de 4 - Devuelve código de error (0).
Switch($ArgType) ;Verifica el tipo de dirección IP.
Case $_PublicIpChk ;Dirección IP pública.
For $I=1 To $SplitSTR[0] Step +1 ;Recorre los bloques de la IP recibida.
If ((StringLen($SplitSTR[$I])>3 Or StringIsDigit($SplitSTR[$I])=0) Or (Number($SplitSTR[$I])>255 Or Number($SplitSTR[$I])<0)) Then Return 0 ;Si el bloque actual contiene más de 3 dígitos, carácteres no dígitos o su valor es mayor que 255, o menor que 0 - Devuelve código de error (0).
Next ;End -> Recorre los bloques de la IP recibida.
Return 1 ;Devuelve código de ejecución correcta (1).
Case $_PrivateIpChk ;Dirección IP privada.
If ((($SplitSTR[1]=="192") And (($SplitSTR[2]<>"168") Or ($SplitSTR[3]<>0 And $SplitSTR[3]<>1) Or (Number($SplitSTR[4])<1 Or Number($SplitSTR[4])>255))) _ ;Si el primer bloque de la dirección IP es "192" y el segundo es distinto de "168", el tercero es distinto de "0" o "1" y el cuarto contiene un valor inferior a "1" o superior a "255".
Or (($SplitSTR[1]=="10") And (($SplitSTR[2]<>"18") Or ($SplitSTR[3]<>"100") Or (Number($SplitSTR[4])<1 Or Number($SplitSTR[4])>255))) _ ;O si el primer bloque de la dirección IP es "10", el segundo es distinto de "18", el tercero es distinto de "100" y el cuarto contiene un valor inferior a "1" o superior a "255".
Or (($SplitSTR[1]<>"192" And $SplitSTR[1]<>"10"))) Then Return 0 ;O si el primer bloque de la dirección IP es distinto de "192" y "10" - Devuelve código de error (0).
Return 1 ;Devuelve código de ejecución correcta (1).
EndSwitch ;End -> Verifica el tipo de dirección IP.
EndFunc
Func _Adsl_ShockConnSV($ArgHost, $ArgPort=80, $ArgBloqData=1, $ArgConnPath="", $ArgMethod=$_GetSvConnMethod, $ArgHAcc="", $ArgHRef="", $ArgHAccLang="", $ArgHUSAg="", $ArgHCTType="", $ArgHAccEnc="", $ArgHHost="", $ArgHCTLength="", $ArgHConn="", $ArgHCachCTRL="", $ArgHCK="", $ArgParam="", $ArgValParam="", $ArgExtraSTR="")
#CS
----------
Descripción:
- Conecta con un servidor mediante sockets, le envía una petición y devuelve la respuesta de este.
Parámetro(s):
- $ArgHost: Dirección del servidor.
Admite direcciones en formato IP y/o nombre.
- $ArgPort: (80) Puerto de conexión del servidor.
- $ArgBloqData: (1) Tamaño en bytes del bloque de datos a recibir del servidor.
El tamaño mínimo del bloque es de 1 byte y el tamaño máximo es de 50.000 bytes.
Un valor inferior a "1" o superior a "50.000" hará que la función falle.
- $ArgConnPath: ("") Ruta del recurso a invocar dentro del servidor.
"" no indica ningún recurso.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgMethod: ($_GetSvConnMethod) Método de envío de parámetros:
- $_GetSvConnMethod=Get.
- $_PostSvConnMethod=Post.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHAcc ("") Contenido de la cabecera "Accept".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHRef: ("") Contenido de la cabecera "Referer".
"" No incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHAccLang ("") Contenido de la cabecera "Accept-Language".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHUSAg ("") Contenido de la cabecera "User-Agent".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHCTType ("") Contenido de la cabecera "Content-Type".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHAccEnc ("") Contenido de la cabecera "Accept-Encoding".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHHost ("") Contenido de la cabecera "Host".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHCTLength ("") Contenido de la cabecera "Content-Length".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHConn ("") Contenido de la cabecera "Connection".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHCachCTRL ("") Contenido de la cabecera "Cache-Control".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgHCK ("") Contenido de la cabecera "Cookie".
"" no incluye la cabecera.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgParam: ("") Parámetro a enviar al servidor.
"" no envía ningún parámetro.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgValParam: ("") Valor a asignar a "$ArgParam".
"" No asigna ningún valor.
Si este parámetro recibe un valor, $ArgParam también debe recibir un valor, de lo contrario la función devolverá 0.
Si $ArgPort es distinto de "80" este parámetro será ignorado.
- $ArgExtraSTR: ("") Cadena adicional.
Si $ArgPort es distinto de "80" se enviará el contenido de este parámetro al servidor.
Si $ArgPort es distinto de "80" y este parámetro no recibe ningún valor, se enviará un carácter @CRLF al servidor.
Si $ArgPort vale "80" este parámetro será ignorado.
Valor(es) de retorno:
- OK: Respuesta del servidor.
- 0: Ocurrió un error al conectar con el servidor o al obtener la respuesta de este.
Categoría: Función interna.
----------
#CE
Local $TCPStart ;Inicializar el servicio TCP.
Local $ChkHost ;Comprobar si "$ArgHost" es una dirección IP válida.
Local $BuffRequest="" ;Buffer para crear la petición del servidor.
Local $ShockConn ;Handle de la conexión con el servidor.
Local $ShockSendData ;Envío de la petición al servidor.
Local $BuffRecvData ;Buffer para almacenar los datos recibidos del servidor.
Local $ShockClose ;Cierra la conexión con el servidor.
Local $TCPQuit ;Finalizar el servicio TCP.
If (($ArgHost=="") Or ($ArgPort=="" Or StringIsDigit($ArgPort)=0 Or Number($ArgPort)<0) Or (($ArgBloqData=="" Or StringIsDigit($ArgBloqData)=0) Or ((Number($ArgBloqData)<1 Or Number($ArgBloqData)<0) Or (Number($ArgBloqData)>50000))) Or (Number($ArgMethod)<>$_GetSvConnMethod And Number($ArgMethod)<>$_PostSvConnMethod) Or ($ArgValParam<>"" And $ArgParam=="")) Then Return 0 ;Si "$ArgHost", "$ArgPort", "$ArgBloqData" o "$ArgMethod" no reciben un valor esperado, o si "$ArgValParam" recibe un valor y "$ArgParam" no recibe un valor - ;Devuelve código de error (0).
$TCPStart=TcpStartUp() ;Inicializa el servicio TCP.
If $TCPStart=0 Then Return 0 ;Si ocurrió un error al inicializar el servicio TCP - Devuelve código de error (0).
$ChkHost=_Adsl_CheckIp($ArgHost, 0) ;Comprueba si "$ArgHost" es una dirección IP válida.
If $ChkHost=0 Then ;Si "$ArgHost" no es una dirección IP válida.
$ArgHost=TcpNameToIp($ArgHost) ;Obtiene la dirección IP de la dirección del servidor.
EndIf ;End -> Si "$ArgHost" no es una dirección IP válida.
If $ArgPort=80 Then ;Construir petición HTTP.
If Number($ArgMethod)=$_GetSvConnMethod Then ;Si la petición es "GET".
$BuffRequest="GET" ;Añade el método al buffer.
Else ;Si la petición es "POST".
$BuffRequest="POST" ;Añade el método al buffer.
EndIf ;End -> Si la petición es "GET".
If $ArgConnPath<>"" Then ;Si "$ArgConnPath" recibe un valor.
$BuffRequest&=" "&$ArgConnPath ;Añade la ruta del recurso a consultar al buffer.
EndIf ;End -> Si "$ArgConnPath" recibe un valor.
If Number($ArgMethod)=$_GetSvConnMethod Then ;Si la petición es "GET".
If $ArgConnPath=="" Then ;Si "$ArgConnPath" no recibe ningún valor.
$BuffRequest&=" " ;Añade un espacio ( ) al buffer.
EndIf ;End -> Si "$ArgConnPath" no recibe ningún valor.
$BuffRequest&="?" ;Añade el carácter "?" al buffer.
If $ArgParam<>"" Then ;Si "$ArgParam" recibe un valor.
$BuffRequest&=$ArgParam&"=" ;Añade "$ArgParam" y el carácter "=" al buffer.
EndIf ;End -> Si "$ArgParam" recibe un valor.
If $ArgValParam<>"" Then ;Si "$ArgValParam" recibe un valor.
$BuffRequest&=$ArgValParam ;Añade "$ArgValParam" al buffer.
EndIf ;End -> Si "$ArgValParam" recibe un valor.
EndIf ;End -> Si la petición es "GET".
$BuffRequest&=" HTTP/1.1"&@CRLF ;Añade el protocolo y un retorno de carro (@CRLF) al buffer.
If $ArgHAcc<>"" Then ; Si "$ArgHAcc" recibe un valor.
$BuffRequest&="Accept: "&$ArgHAcc&@CRLF ;Añade la cabecera "Accept" al buffer.
EndIf ;End -> Si "$ArgHAcc" recibe un valor.
If $ArgHRef<>"" Then ; Si "$ArgHRef" recibe un valor.
$BuffRequest&="Referer: "&$ArgHRef&@CRLF ;Añade la cabecera "Referer" al buffer.
EndIf ;End -> Si "$ArgHRef" recibe un valor.
If $ArgHAccLang<>"" Then ; Si "$ArgHRef" recibe un valor.
$BuffRequest&="Accept-Language: "&$ArgHAccLang&@CRLF ;Añade la cabecera "Accept-Language" al buffer.
EndIf ;End -> Si "$ArgHAccLang" recibe un valor.
If $ArgHUSAg<>"" Then ; Si "$ArgHRef" recibe un valor.
$BuffRequest&="User-Agent: "&$ArgHUSAg&@CRLF ;Añade la cabecera "User-Agent" al buffer.
EndIf ;End -> Si "$ArgHUSAg" recibe un valor.
If $ArgHCTType<>"" Then ; Si "$ArgHCTType" recibe un valor.
$BuffRequest&="Content-Type: "&$ArgHCTType&@CRLF ;Añade la cabecera "Content-Type" al buffer.
EndIf ;End -> Si "$ArgHCTType" recibe un valor.
If $ArgHAccEnc<>"" Then ; Si "$ArgHAccEnc" recibe un valor.
$BuffRequest&="Accept-Encoding: "&$ArgHAccEnc&@CRLF ;Añade la cabecera "Accept-Encoding" al buffer.
EndIf ;End -> Si "$ArgHAccEnc" recibe un valor.
If $ArgHHost<>"" Then ; Si "$ArgHHost" recibe un valor.
$BuffRequest&="Host: "&$ArgHHost&@CRLF ;Añade la cabecera "Host" al buffer.
EndIf ;End -> Si "$ArgHHost" recibe un valor.
If $ArgHCTLength<>"" Then ; Si "$ArgHCTLength" recibe un valor.
$BuffRequest&="Content-Length: "&$ArgHCTLength&@CRLF ;Añade la cabecera "Content-Length" al buffer.
EndIf ;End -> Si "$ArgHCTLength" recibe un valor.
If $ArgHConn<>"" Then ; Si "$ArgHConn" recibe un valor.
$BuffRequest&="Connection: "&$ArgHConn&@CRLF ;Añade la cabecera "Connection" al buffer.
EndIf ;End -> Si "$ArgHConn" recibe un valor.
If $ArgHCachCTRL<>"" Then ; Si "$ArgHCachCTRL" recibe un valor.
$BuffRequest&="Cache-Control: "&$ArgHCachCTRL&@CRLF ;Añade la cabecera "Cache-Control" al buffer.
EndIf ;End -> Si "$ArgHCachCTRL" recibe un valor.
If $ArgHCK<>"" Then ; Si "$ArgHCK" recibe un valor.
$BuffRequest&="Cookie: "&$ArgHCK&@CRLF ;Añade la cabecera "Cookie" al buffer.
EndIf ;End -> Si "$ArgHCK" recibe un valor.
$BuffRequest&=@CRLF ;Añade un retorno de carro (@CRLF) al buffer.
If Number($ArgMethod)=$_PostSvConnMethod Then ;Si la petición es "POST".
If $ArgParam<>"" Then ;Si "$ArgParam" recibe un valor.
$BuffRequest&=$ArgParam&"=" ;Añade "$ArgParam" al buffer.
EndIf ;End -> Si "$ArgParam" recibe un valor.
If $ArgValParam<>"" Then ;Si "$ArgValParam" recibe un valor.
$BuffRequest&=$ArgValParam ;Añade "$ArgValParam" al buffer.
EndIf ;End -> Si "$ArgValParam" recibe un valor.
EndIf ;End -> Si la petición es "POST".
$BuffRequest&=@CRLF ;Añade un retorno de carro (@CRLF) al buffer.
Else ;Construir petición distinta de HTTP.
If $ArgExtraSTR=="" Then ;Si "$ArgExtraSTR" no recibe ningún valor.
$ArgExtraSTR=@CRLF ;Añade un carácter @CRLF a "$ArgExtraSTR".
EndIf ;End -> Si "$ArgExtraSTR" no recibe ningún valor.
EndIf ;End -> Construir petición HTTP.
$ShockConn=TcpConnect($ArgHost, $ArgPort) ;Conecta con el servidor.
If ($ShockConn=0 Or $ShockConn=-1) Then Return 0 ;Si ocurrió un error al conectar con el servidor - Devuelve código de error (0).
If $ArgPort=80 Then ;Enviar petición HTTP.
$ShockSendData=TcpSend($ShockConn, $BuffRequest) ;Envía petición HTTP al servidor.
Else ;Enviar petición distinta de HTTP.
$ShockSendData=TcpSend($ShockConn, $ArgExtraSTR) ;Envía petición distinta de HTTP al servidor.
EndIf ;End -> Enviar petición HTTP.
If ($ShockSendData=="" And @Error=-1) Then Return 0 ;Si ocurrió un error al enviar la consulta al servidor - Devuelve código de error (0).
While 1 ;Recepción de datos del servidor en el buffer.
$BuffRecvData&=TcpRecv($ShockConn, $ArgBloqData, 0) ;Recibe datos del servidor en el tamaño de bloque indicado en "$ArgBloqData".
If @Error=-1 Then ExitLoop ;Si termina la recepción de datos del servidor - Sale del bucle.
Wend ;End -> Recepción de datos del servidor en el buffer.
$ShockClose=TcpCloseSocket($ShockConn) ;Cierra la conexión con el servidor.
If Not $ShockClose Then Return 0 ;Si ocurrió un error al cerrar la conexión con el servidor - Devuelve código de error (0).
$TCPQuit=TCPShutDown() ;Finaliza el servicio TCP.
If $TCPQuit=0 Then Return 0 ;Si ocurrió un error al finalizar el servicio TCP - Devuelve código de error (0).
Return $BuffRecvData ;Devuelve código de ejecución correcta ($BuffRecvData).
EndFunc
Func _Adsl_WebCodeStrip($ArgDoc, $ArgHtmlStrip=$_DelHtmlStrip, $ArgJsStrip=$_DelJsStrip, $ArgCssStrip=$_DelCssStrip, $ArgCommStrip=$_DelCommStrip, $ArgHeadStrip=$_DelHdStrip, $ArgEspCharMod=$_DelModChStrip, $ArgMarkIns="", $ArgSubStr="", $ArgStrUpper=$_NotUppStr, $ArgNumMarkIns=$_AllMarkInsNumber)
#CS
----------
Descripción:
- Elimina código HTML, JAVASCRIPT, CSS, comentarios HTML, cabeceras HTML y convierte carácteres HTML especiales en carácteres ASCII, de una página web.
Parámetro(s):
- $ArgDoc: Contenido de una página web.
- $ArgHtmlStrip: ($_DelHtmlStrip) Elimina código HTML:
- $_NotDelHtmlStrip=No eliminar.
- $_DelHtmlStrip=Eliminar.
- $ArgJsStrip: ($_DelJsStrip) Elimina código JAVASCRIPT:
- $_NotDelJsStrip=No eliminar.
- $_DelJsStrip=Eliminar.
- $ArgCssStrip: ($_DelCssStrip) Elimina código CSS:
- $_NotDelCssStrip=No eliminar.
- $_DelCssStrip=Eliminar.
- $ArgCommStrip: ($_DelCommStrip) Eliminar comentarios HTML:
- $_NotDelCommStrip=No eliminar.
- $_DelCommStrip=Eliminar.
- $ArgHeadStrip: ($_DelHdStrip) Elimina cabeceras HTML:
- $_NotDelHdStrip=No eliminar.
- $_DelHdStrip=Eliminar.
- $ArgEspCharMod: ($_DelModChStrip) Convierte carácteres HTML especiales en carácteres ASCII:
- $_NotDelModChStrip=No convertir.
- $_DelModChStrip=Convertir.
- $ArgMarkIns: ("") Marcador a insertar.
Si $ArgMarkIns se inserta dentro de un comentario HTML o código JAVASCRIPT y $ArgCommStrip o $ArgJsStrip respectivamente valen "1", $ArgMarkIns se colocará en el lugar del elemento al que pertenece, pero este será eliminado:
- "" no inserta ningún marcador.
- $ArgSubStr: ("") Subcadena en $ArgDoc ante la que se insertará $ArgMarkIns.
Si $ArgMarkIns recibe un valor y este parámetro no recibe ninguno, la función devolverá 0.
$ArgMarkIns será insertado de forma independiente en la línea anterior al contenido de este parámetro.
Si el contenido de este parámetro no se encuentra en $ArgDoc, $ArgMarkIns no será insertado.
- $ArgStrUpper: ($_NotUppStr) Caso sensitivo en la búsqueda de $ArgSubStr.
Si $ArgMarkIns no recibe ningún valor, este parámetro será ignorado:
- $_NotUppStr=No usar caso sensitivo.
- $_UppStr=Usar caso sensitivo.
- $ArgNumMarkIns: ($_AllMarkInsNumber) Cantidad de veces a insertar $ArgMarkIns.
Si $ArgMarkIns no recibe ningún valor, este parámetro será ignorado.
Si la cantidad de veces a insertar $ArgMarkIns es mayor que las veces que aparece $ArgSubStr en $ArgDoc, se insertará $ArgMarkIns en $ArgDoc, tantas veces como $ArgSubStr aparezca en esta:
- $_AllMarkInsNumber=Todas las veces que se encuentre $ArgSubStr en $ArgDoc.
Valor(es) de retorno:
- OK: $ArgDoc modificada, según la configuración establecida.
- 0: Ocurrió un error al eliminar código HTML, JAVASCRIPT, comentarios HTML o convertir carácteres HTML especiales en carácteres ASCII.
Categoría: Función interna.
----------
#CE
;Variables locales:
Local $BuffSTR ;Buffer para almacenar el texto a devolver.
Local $DivSTR ;Dividir "$ArgDoc" por carácteres @CRLF.
Local $InJS=0 ;Bandera para la lectura de código JAVASCRIPT.
Local $InCSS=0 ;Bandera para la lectura de código CSS.
Local $InCOMM=0 ;Bandera para la lectura de comentarios HTML.
;Control de errores:
If (($ArgDoc=="") Or (Number($ArgHtmlStrip)<>$_NotDelHtmlStrip And Number($ArgHtmlStrip)<>$_DelHtmlStrip) Or (Number($ArgJsStrip)<>$_NotDelJsStrip And Number($ArgJsStrip)<>$_DelJsStrip) Or (Number($ArgCssStrip)<>$_NotDelCssStrip And Number($ArgCssStrip)<>$_DelCssStrip) Or (Number($ArgEspCharMod)<>$_NotDelModChStrip And Number($ArgEspCharMod)<>$_DelModChStrip) Or (Number($ArgStrUpper)<>$_NotUppStr And Number($ArgStrUpper)<>$_UppStr) Or ($ArgNumMarkIns=="" Or StringIsDigit($ArgNumMarkIns)=0 Or Number($ArgNumMarkIns)<$_AllMarkInsNumber) Or (Number($ArgCommStrip)<>$_NotDelCommStrip And Number($ArgCommStrip)<>$_DelCommStrip) Or (Number($ArgHeadStrip)<>$_NotDelHdStrip And Number($ArgHeadStrip)<>$_DelHdStrip)) Then Return 0 ;Si "$ArgHtmlStrip", "$ArgJsStrip", "$ArgEspCharMod", "$ArgStrUpper", "$ArgNumMarkIns", "$ArgCommStrip" o "$ArgHeadStrip" no reciben un valor esperado - Devuelve código de error (0).
;Inserción de marcadores:
If $ArgMarkIns<>"" Then ;Si "$ArgMarkIns" recibe un valor.
If $ArgSubStr=="" Then Return 0 ;Si "$ArgSubStr" no recibe ningún valor - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, $ArgSubStr, "&CRLF"&$ArgMarkIns&"&CRLF"&$ArgSubStr, $ArgNumMarkIns, $ArgStrUpper) ;Inserta "$ArgMarkIns" en "$ArgDoc".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al insertar "$ArgMarkIns" en "$ArgDoc" - Devuelve código de error (0).
EndIf ;End -> Si "$ArgSubStr" recibe un valor.
;Conversión de carácteres HTML:
If $ArgEspCharMod=1 Then ;Convertir carácteres HTML especiales en carácteres ASCII.
$ArgDoc=StringReplace($ArgDoc, "<", "<", 0, 1) ;Convierte "<" en "<".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "<" en "<" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, ">", ">", 0, 1) ;Convierte ">" en ">".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir ">" en ">" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "&", "&", 0, 1) ;Convierte "&" en "&".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "&" en "&" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, """, """", 0, 1) ;Convierte """ en """.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir """ en """ - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Á", "Á", 0, 1) ;Convierte "Á" en "Á".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Á" en "Á" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "À", "À", 0, 1) ;Convierte "À" en "À".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "À" en "À" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "É", "É", 0, 1) ;Convierte "É" en "É".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "É" en "É" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "È", "È", 0, 1) ;Convierte "È" en "È".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "È" en "È" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Í", "Í", 0, 1) ;Convierte "Í" en "Í".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Í" en "Í" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ì", "Ì", 0, 1) ;Convierte "Ì" en "Ì".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ì" en "Ì" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ó", "Ó", 0, 1) ;Convierte "Ó" en "Ó".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ó" en "Ó" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ò", "Ò", 0, 1) ;Convierte "Ò" en "Ò".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ò" en "Ò" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ú", "Ú", 0, 1) ;Convierte "Ú" en "Ú".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ú" en "Ú" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ù", "Ù", 0, 1) ;Convierte "Ù" en "Ù".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ù" en "Ù" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "á", "á", 0, 1) ;Convierte "á" en "á".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "á" en "á" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "à", "à", 0, 1) ;Convierte "à" en "à".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "à" en "à" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "é", "é", 0, 1) ;Convierte "é" en "é".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "é" en "é" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "è", "è", 0, 1) ;Convierte "è" en "è".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "è" en "è" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "í", "í", 0, 1) ;Convierte "í" en "í".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "í" en "í" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ì", "ì", 0, 1) ;Convierte "ì" en "ì".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ì" en "ì" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ó", "ó", 0, 1) ;Convierte "ó" en "ó".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ó" en "ó" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ò", "ò", 0, 1) ;Convierte "ò" en "ò".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ò" en "ò" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ú", "ú", 0, 1) ;Convierte "ú" en "ú".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ú" en "ú" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ù", "ù", 0, 1) ;Convierte "ù" en "ù".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ù" en "ù" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ä", "Ä", 0, 1) ;Convierte "Ä" en "Ä".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ä" en "Ä" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Â", "Â", 0, 1) ;Convierte "Â" en "Â".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Â" en "Â" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ë", "Ë", 0, 1) ;Convierte "Ë" en "Ë".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ë" en "Ë" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ê", "Ê", 0, 1) ;Convierte "Ê" en "Ê".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ê" en "Ê" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ï", "Ï", 0, 1) ;Convierte "Ï" en "Ï".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ï" en "Ï" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Î", "Î", 0, 1) ;Convierte "Î" en "Î".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Î" en "Î" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ö", "Ö", 0, 1) ;Convierte "Ö" en "Ö".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ö" en "Ö" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ô", "Ô", 0, 1) ;Convierte "Ô" en "Ô".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ô" en "Ô" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ü", "Ü", 0, 1) ;Convierte "Ü" en "Ü".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ü" en "Ü" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Û", "Û", 0, 1) ;Convierte "Û" en "Û".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Û" en "Û" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ä", "ä", 0, 1) ;Convierte "ä" en "ä".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ä" en "ä" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "â", "â", 0, 1) ;Convierte "â" en "â".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "â" en "â" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ë", "ë", 0, 1) ;Convierte "ë" en "ë".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ë" en "ë" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ê", "ê", 0, 1) ;Convierte "ê" en "ê".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ê" en "ê" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ï", "ï", 0, 1) ;Convierte "ï" en "ï".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ï" en "ï" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "î", "î", 0, 1) ;Convierte "î" en "î".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "î" en "î" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ö", "ö", 0, 1) ;Convierte "ö" en "ö".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ö" en "ö" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ô", "ô", 0, 1) ;Convierte "ô" en "ô".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ô" en "ô" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ü", "ü", 0, 1) ;Convierte "ü" en "ü".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ü" en "ü" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "û", "û", 0, 1) ;Convierte "û" en "û".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "û" en "û" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ã", "Ã", 0, 1) ;Convierte "Ã" en "Ã".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ã" en "Ã" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "å", "å", 0, 1) ;Convierte "å" en "å".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "å" en "å" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ñ", "Ñ", 0, 1) ;Convierte "Ñ" en "Ñ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ñ" en "Ñ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Å", "Å", 0, 1) ;Convierte "Å" en "Å".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Å" en "Å" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Õ", "Õ", 0, 1) ;Convierte "Õ" en "Õ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Õ" en "Õ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ç", "Ç", 0, 1) ;Convierte "Ç" en "Ç".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ç" en "Ç" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ã", "ã", 0, 1) ;Convierte "ã" en "ã".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ã" en "ã" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ç", "ç", 0, 1) ;Convierte "ç" en "ç".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ç" en "ç" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ñ", "ñ", 0, 1) ;Convierte "ñ" en "ñ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ñ" en "ñ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ý", "Ý", 0, 1) ;Convierte "Ý" en "Ý".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ý" en "Ý" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "õ", "õ", 0, 1) ;Convierte "õ" en "õ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "õ" en "õ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ý", "ý", 0, 1) ;Convierte "ý" en "ý".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ý" en "ý" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ø", "Ø", 0, 1) ;Convierte "Ø" en "Ø".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ø" en "Ø" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ÿ", "ÿ", 0, 1) ;Convierte "ÿ" en "ÿ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ÿ" en "ÿ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ø", "ø", 0, 1) ;Convierte "ø" en "ø".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ø" en "ø" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Þ", "Þ", 0, 1) ;Convierte "Þ" en "Þ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Þ" en "Þ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Ð", "Ð", 0, 1) ;Convierte "Ð" en "Ð".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Ð" en "Ð" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "þ", "þ", 0, 1) ;Convierte "þ" en "þ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "þ" en "þ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ð", "ð", 0, 1) ;Convierte "ð" en "ð".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ð" en "ð" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "Æ", "Æ", 0, 1) ;Convierte "Æ" en "Æ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "Æ" en "Æ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ß", "ß", 0, 1) ;Convierte "ß" en "ß".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ß" en "ß" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "æ", "æ", 0, 1) ;Convierte "æ" en "æ".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "æ" en "æ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¼", "¼", 0, 1) ;Convierte "¼" en "¼".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¼" en "¼" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, " ", Chr(160), 0, 1) ;Convierte " " en Chr(160).
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir " " en Chr(160) - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "½", "½", 0, 1) ;Convierte "½" en "½".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "½" en "½" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¡", "¡", 0, 1) ;Convierte "¡" en "¡".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¡" en "¡" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¾", "¾", 0, 1) ;Convierte "¾" en "¾".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¾" en "¾" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "£", "£", 0, 1) ;Convierte "£" en "£".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "£" en "£" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "©", "©", 0, 1) ;Convierte "©" en "©".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "©" en "©" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¥", "¥", 0, 1) ;Convierte "¥" en "¥".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¥" en "¥" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "®", "®", 0, 1) ;Convierte "®" en "®".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "®" en "®" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "§", "§", 0, 1) ;Convierte "§" en "§".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "§" en "§" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "ª", "ª", 0, 1) ;Convierte "ª" en "ª".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "ª" en "ª" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¤", "¬", 0, 1) ;Convierte "¤" en "¬".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¤" en "¬" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "²", "²", 0, 1) ;Convierte "²" en "²".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "²" en "²" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¦", "¦", 0, 1) ;Convierte "¦" en "¦", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¦" en "¦" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "³", "³", 0, 1) ;Convierte "³" en "³", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "³" en "³" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "«", "«", 0, 1) ;Convierte "«" en "«", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "«" en "«" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¹", "¹", 0, 1) ;Convierte "¹" en "¹", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¹" en "¹" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¬", "¬", 0, 1) ;Convierte "¬" en "¬", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¬" en "¬" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¯", "¯", 0, 1) ;Convierte "¯" en "¯", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¯" en "¯" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "", 0, 1) ;Convierte "" en "", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "µ", "µ", 0, 1) ;Convierte "µ" en "µ", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "µ" en "µ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "º", "º", 0, 1) ;Convierte "º" en "º", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "º" en "º" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¶", "¶", 0, 1) ;Convierte "¶" en "¶", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¶" en "¶" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "´", "´", 0, 1) ;Convierte "´" en "´", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "´" en "´" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "·", "·", 0, 1) ;Convierte "·" en "·", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "·" en "·" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¨", "¨", 0, 1) ;Convierte "¨" en "¨", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¨" en "¨" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "°", "°", 0, 1) ;Convierte "°" en "°", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "°" en "°" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "±", "±", 0, 1) ;Convierte "±" en "±", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "±" en "±" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¸", "¸", 0, 1) ;Convierte "¸" en "¸", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¸" en "¸" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "»", "»", 0, 1) ;Convierte "»" en "»", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "»" en "»" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¿", "¿", 0, 1) ;Convierte "¿" en "¿", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¿" en "¿" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "×", "×", 0, 1) ;Convierte "×" en "×", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "×" en "×" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "¢", "¢", 0, 1) ;Convierte "¢" en "¢", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "¢" en "¢" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "÷", "÷", 0, 1) ;Convierte "÷" en "÷", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "÷" en "÷" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "€", "€", 0, 1) ;Convierte "€" en "€", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "€" en "€" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "“", 0, 1) ;Convierte "" en "“", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "“" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "™", 0, 1) ;Convierte "" en "™", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "™" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "”", 0, 1) ;Convierte "" en "”", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "”" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "‰", 0, 1) ;Convierte "" en "‰", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "‰" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "Œ", 0, 1) ;Convierte "" en "Œ", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "Œ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "ƒ", 0, 1) ;Convierte "" en "ƒ", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "ƒ" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "‡", 0, 1) ;Convierte "" en "‡", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "‡" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", "†", 0, 1) ;Convierte "" en "†", .
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al convertir "" en "†" - Devuelve código de error (0).
EndIf ;End -> Convertir carácteres HTML especiales en carácteres ASCII.
;Tratamiento de cabeceras HTML:
If $ArgHeadStrip=$_NotDelHdStrip Then ;Conservar cabeceras HTML.
If StringInStr($ArgDoc, "1 Then ;Si hay datos antes de la etiqueta "1) Then ;Si hay datos antes de la etiqueta " Si hay datos antes de la etiqueta "1 Then ;Si hay datos antes de la etiqueta "1 Then ;Si hay datos antes de la etiqueta " Si hay datos antes de la etiqueta " Conservar cabeceras HTML.
;Preparación de "$ArgDoc" para el procesamiento:
$ArgDoc=StringReplace($ArgDoc, @Tab, "", 0, 0) ;Elimina todos los carácteres @Tab.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al eliminar todos los carácteres @Tab - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, @CRLF, "", 0, 0) ;Elimina todos los carácteres @CRLF.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al eliminar todos los carácteres @CRLF - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, @CR, "", 0, 0) ;Elimina todos los carácteres @CR.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al eliminar todos los carácteres @CR - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, @LF, "", 0, 0) ;Elimina todos los carácteres @LF.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al eliminar todos los carácteres @LF - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, ">", ">"&@CRLF, 0, 0) ;Reemplaza todos los carácteres ">" por ">"&@CRLF.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al reemplazar todos los carácteres ">" por ">"&@CRLF - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "<", @CRLF&"<", 0, 0) ;Reemplaza todos los carácteres "<" por @CRLF&"<".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al reemplazar todos los carácteres "<" por @CRLF&"<" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "", @CRLF&"-->", 0, 0) ;Reemplaza todas las etiquetas de fin de comentario HTML por @CRLF&"-->".
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al reemplazar todas las etiquetas de fin de comentario HTML por @CRLF&"-->" - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, @CRLF&@CRLF, @CRLF, 0, 0) ;Reemplaza todos los carácteres @CRLF&@CRLF por @CRLF.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al reemplazar todos los carácteres @CRLF&@CRLF por @CRLF - Devuelve código de error (0).
$ArgDoc=StringReplace($ArgDoc, "&CRLF", @CRLF, 0, 0) ;Reemplaza todos los carácteres "&CRLF" por carácteres @CRLF.
If ($ArgDoc=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al reemplazar todos los carácteres "&CRLF" por carácteres @CRLF - Devuelve código de error (0).
;Procesamiento de "$ArgDoc":
$DivSTR=StringSplit($ArgDoc, @CRLF) ;Divide "$ArgDoc" por carácteres @CRLF.
If (Not IsArray($DivSTR) Or $DivSTR[0]=0) Then Return 0 ;Si ocurrió un error al dividir "$ArgDoc" por carácteres @CRLF - Devuelve código de error (0).
For $I=1 To $DivSTR[0] Step +1 ;Leer "$ArgDoc" por líneas.
If ($DivSTR[$I]==@CRLF Or $DivSTR[$I]==@CR Or $DivSTR[$I]==@LF Or $DivSTR[$I]==Chr(160) Or StringIsSpace($DivSTR[$I])=1 Or $DivSTR[$I]=="") Then ContinueLoop ;Si la línea actual contiene solo carácteres @CRLF, @CR, @LF, "Chr(160)", espacios en blanco o no contiene nada - Continúa con la siguiente iteración del bucle.
If ((StringInStr($DivSTR[$I], "<", 0, 1, 1)<>0 And StringInStr($DivSTR[$I], ">", 0, 1, StringInStr($DivSTR[$I], "<", 0, 1, 1))<>0) And ((StringMid($DivSTR[$I], (StringInStr($DivSTR[$I], "<", 0, 1, 1)+1), 6)<>"script" And StringMid($DivSTR[$I], (StringInStr($DivSTR[$I], "<", 0, 1, 1)+1), 7)<>"/script") And (StringMid($DivSTR[$I], (StringInStr($DivSTR[$I], "<", 0, 1, 1)+1), 5)<>"style" And StringMid($DivSTR[$I], (StringInStr($DivSTR[$I], "<", 0, 1, 1)+1), 6)<>"/style"))) Then ;Si la línea actual contiene código HTML.
If $ArgHtmlStrip=$_NotDelHtmlStrip Then ;Copiar la línea actual en el buffer.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Copiar la línea actual en el buffer.
ElseIf StringInStr($DivSTR[$I], "0 Then ;Si la línea actual contiene la etiqueta de fin de código JAVASCRIPT.
If $ArgJsStrip=$_NotDelJsStrip Then ;Copiar código JAVASCRIPT.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Copiar código JAVASCRIPT.
$InJS=0 ;Desactivar la bandera de lectura de código JAVASCRIPT.
ElseIf StringInStr($DivSTR[$I], "0 Then ;Si la línea actual contiene la etiqueta de fin de código CSS.
If $ArgCssStrip=$_NotDelCssStrip Then ;Copiar código CSS.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Copiar código CSS.
$InCSS=0 ;Desactiva la bandera de lectura de código CSS.
ElseIf StringInStr($DivSTR[$I], "", 0, 1, 1)<>0 Then ;Si la línea actual contiene la etiqueta de fin de comentario HTML.
If $ArgCommStrip=$_NotDelCommStrip Then ;Copiar comentario HTML.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Copiar comentario HTML.
$InCOMM=0 ;Desactivar la bandera de lectura de comentarios HTML.
Else ;Si la línea actual no contiene código HTML, JAVASCRIPT, CSS ni comentarios HTML.
If $InJS=1 Then ;Si se está leyendo código JAVASCRIPT.
If $ArgJsStrip=$_NotDelJsStrip Then ;Copiar código JAVASCRIPT en el buffer.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
Else ;Copiar marcadores en código JAVASCRIPT, en el buffer.
If ($ArgMarkIns<>"" And $DivSTR[$I]==$ArgMarkIns) Then ;Si la línea actual es un marcador.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Si la línea actual es un marcador.
EndIf ;End -> Copiar código JAVASCRIPT en el buffer.
ElseIf $InCSS=1 Then ;Si se está leyendo código CSS.
If $ArgCssStrip=$_NotDelCssStrip Then ;Copiar código CSS en el buffer.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
Else ;Copiar marcadores en código CSS, en el buffer.
If ($ArgMarkIns<>"" And $DivSTR[$I]==$ArgMarkIns) Then ;Si la línea actual es un marcador.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Si la línea actual es un marcador.
EndIf ;End -> Copiar código CSS en el buffer.
ElseIf $InCOMM=1 Then ;Si se está leyendo un comentario HTML.
If Number($ArgCommStrip)=$_NotDelCommStrip Then ;Copiar comentario HTML en el buffer.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
Else ;Copiar marcadores en comentarios HTML, en el buffer.
If ($ArgMarkIns<>"" And $DivSTR[$I]==$ArgMarkIns) Then ;Si la línea actual es un marcador.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Si la línea actual es un marcador.
EndIf ;End -> Copiar comentario HTML en el buffer.
ElseIf (Number($InJS)=0 And Number($InCOMM)=0) Then ;Si no se está leyendo código JAVASCRIPT ni comentarios HTML.
$BuffSTR&=@CRLF&StringStripWS($DivSTR[$I], 1) ;Copia la línea actual en el buffer con un salto de línea delante.
EndIf ;End -> Si se está leyendo código JAVASCRIPT.
EndIf ;End -> Si la línea actual contiene código HTML.
Next ;End -> Leer "$ArgDoc" por líneas.
$BuffSTR=StringReplace($BuffSTR, @CRLF&@CRLF, @CRLF, 0, 0) ;Reemplaza todos los carácteres @CRLF&@CRLF por @CRLF.
If ($BuffSTR=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al reemplazar todos los carácteres @CRLF&@CRLF por @CRLF - Devuelve código de error (0).
$BuffSTR=StringReplace($BuffSTR, Chr(160), "", 0, 0) ;Elimina todos los carácteres "Chr(160)".
If ($BuffSTR=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al eliminar todos los carácteres "Chr(160)" - Devuelve código de error (0).
If (StringMid($BuffSTR, 1, 1)==@CRLF Or StringMid($BuffSTR, 1, 1)==@CR Or StringMid($BuffSTR, 1, 1)==@LF) Then ;Si el primer carácter del buffer es @CRLF, @CR o @LF.
$BuffSTR=StringReplace($BuffSTR, StringMid($BuffSTR, 1, 1), "", 1, 0) ;Elimina el primer carácter del buffer.
If ($BuffSTR=="" Or @Error=1) Then Return 0 ;Si ocurrió un error al eliminar el primer carácter del buffer - Devuelve código de error (0).
EndIf ;End -> Si el primer carácter del buffer es @CRLF, @CR o @LF.
;Retorno de ejecución:
Return $BuffSTR ;Devuelve código de ejecución correcta ($BuffSTR).
EndFunc
Func _Adsl_ExConsole($ArgComm)
#CS
----------
Descripción:
- Envía un comando a la línea de comandos del sistema y devuelve el resultado de su ejecución.
Parámetro(s):
- $ArgComm: Comando a ejecutar en la línea de comandos.
Valor(es) de retorno:
- OK: Resultado de la ejecución del comando.
- 0: Ocurrió un error al ejecutar el comando.
Categoría: Función interna.
----------
#CE
Local $BuffCMD ;Buffer para almacenar el resultado de la ejecución de "$ArgComm".
Local $WriteConsole ;Ejecutar comando en la línea de comandos del sistema.
Local $BuffRepSTR[9][2] ;Buffer para almacenar carácteres especiales a reemplazar en el resultado de la ejecución de "$ArgComm".
If $ArgComm=="" Then Return 0 ;Si "$ArgComm" no recibe ningún valor - Devuelve código de error (0).
$BuffRepSTR[0][0]=" " ;Almacena el carácter " " en el buffer para ser reemplazado.
$BuffRepSTR[0][1]="á" ;Almacena el carácter "á" como patrón de reemplazo del carácter " ", en el buffer.
$BuffRepSTR[1][0]="‚" ;Almacena el carácter "‚" en el buffer para ser reemplazado.
$BuffRepSTR[1][1]="é" ;Almacena el carácter "é" como patrón de reemplazo del carácter "‚", en el buffer.
$BuffRepSTR[2][0]="¡" ;Almacena el carácter "¡" en el buffer para ser reemplazado.
$BuffRepSTR[2][1]="í" ;Almacena el carácter "í" como patrón de reemplazo del carácter "¡", en el buffer.
$BuffRepSTR[3][0]="¢" ;Almacena el carácter "¢" en el buffer para ser reemplazado.
$BuffRepSTR[3][1]="ó" ;Almacena el carácter "ó" como patrón de reemplazo del carácter "¢", en el buffer.
$BuffRepSTR[4][0]="£" ;Almacena el carácter "£" en el buffer para ser reemplazado.
$BuffRepSTR[4][1]="ú" ;Almacena el carácter "ú" como patrón de reemplazo del carácter "£", en el buffer.
$BuffRepSTR[5][0]="""" ;Almacena el carácter """" en el buffer para ser reemplazado.
$BuffRepSTR[5][1]="" ;Almacena el carácter "" como patrón de reemplazo del carácter """", en el buffer.
$BuffRepSTR[6][0]=@CR ;Almacena el carácter @CR en el buffer para ser reemplazado.
$BuffRepSTR[6][1]="crlf" ;Almacena el carácter "crlf" como patrón de reemplazo del carácter """", en el buffer.
$BuffRepSTR[7][0]=@LF ;Almacena el carácter @LF en el buffer para ser reemplazado.
$BuffRepSTR[7][1]="crlf" ;Almacena el carácter "crlf" como patrón de reemplazo del carácter """", en el buffer.
$BuffRepSTR[8][0]=@CRLF ;Almacena el carácter @CRLF en el buffer para ser reemplazado.
$BuffRepSTR[8][1]="crlf" ;Almacena el carácter "crlf" como patrón de reemplazo del carácter """", en el buffer.
$WriteConsole=Run(@ComSpec&" /c "&$ArgComm, "", @SW_HIDE, $STDOUT_CHILD) ;Ejecuta "$ArgComm" en la línea de comandos del sistema.
If ($WriteConsole=0 And @Error<>0) Then Return 0 ;Si ocurrió un error al ejecutar "$ArgComm" en la línea de comandos del sistema - Devuelve código de error (0).
While 1 ;Almacena el resultado de la ejecución de "$ArgComm", en el buffer.
$BuffCMD&=StdoutRead($WriteConsole) ;Almacena en el buffer el contenido de la línea de comandos.
If @Error<>0 Then ExitLoop ;Si no se reciben datos de la línea de comandos u ocurrió un error al recibirlos - Sale del bucle.
Wend ;End -> Almacena el resultado de la ejecución de "$ArgComm", en el buffer.
$BuffCMD&=@CRLF ;Añade un carácter @CRLF al final del contenido del resultado de la ejecución de "$ArgComm".
For $I=0 To (Ubound($BuffRepSTR, 1)-1) Step +1 ;Recorre el buffer de carácteres especiales a reemplazar, en el contenido del resultado de la línea de comandos.
$BuffCMD=StringReplace($BuffCMD, $BuffRepSTR[$I][0], $BuffRepSTR[$I][1], 0, 0) ;Reemplaza el carácter actual del buffer por su patrón de reemplazo.
If ($BuffCMD=="" And @Error=1) Then Return 0 ;Si ocurrió un error al reemplazar el carácter actual del buffer por su patrón de reemplazo - Devuelve código de error (0).
Next ;End -> Recorre el buffer de carácteres especiales a reemplazar, en el contenido del resultado de la línea de comandos.
$BuffCMD=StringRegExpReplace($BuffCMD, "(crlf)+", @CRLF) ;convierte carácteres "crlf" en carácteres @CRLF.
$BuffCMD=StringRegExpReplace($BuffCMD, "( )+", " ") ;Elimina espacios en blanco consecutivos.
$BuffCMD=StringRegExpReplace($BuffCMD, "(\r\n )+", @CRLF) ;Reemplaza las cadenas @CRLF&" " por el carácter @CRLF.
$BuffCMD=StringRegExpReplace($BuffCMD, "(: )+", ":") ;Reemplaza las cadenas ": " por el carácter ":".
Return $BuffCMD ;Devuelve código de ejecución correcta ("$BuffCMD").
EndFunc