Fuente
1. Instalamos el Custom Firewall y ponemos regla tras regla o caso contrario editamos el archivo /etc/clearos/firewall.d
# Correr este script despues reiniciar el firewall. Adicionar reglas aqui.
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 103.4.96.0-103.4.99.254 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 173.252.64.0-173.252.127.255 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 204.15.20.0-204.15.23.255 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 31.13.24.0-31.13.31.254 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 31.13.64.0-31.13.127.254 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 31.13.77.0-31.13.77.254 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 31.13.96.0-31.13.127.254 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 65.201.208.24-65.201.208.30 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 65.204.104.128-65.204.104.142 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 66.199.37.136-66.199.37.142 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 66.220.144.0-66.220.159.255 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 66.92.180.48-66.92.180.62 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 66.93.78.176-66.93.78.182 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 67.200.105.48-67.200.105.50 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 69.171.224.0-69.171.255.255 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 69.63.176.0-69.63.191.255 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --dst-range 74.119.76.0-74.119.79.254 -j DROP
iptables -I FORWARD -p tcp --dport 443 -m iprange --src-range 172.16.0.101-172.16.1.149 -j ACCEPT
Buscado de aquí, copiado de allá, traducido por acá, pero en fin: "El conocimiento para todo el mundo". Entre tecnologías y muchas otras cosas mas .... Como dice mi Padre: "Un grano no hace el granero, pero ayuda a su compañero"
miércoles, 30 de octubre de 2013
viernes, 25 de octubre de 2013
Mensaje "weighted phrase limit exceeded" en ClearOS
Para poder cambiar esto se tiene que modificar el archivo
dansguardian.conf que se encuentra en /etc/dansguardian-av/dansguardian.conf
Busca
phrasefiltermode = 3
Trae por defecto 2, cambialo a 3 y te servira.
dansguardian.conf que se encuentra en /etc/dansguardian-av/dansguardian.conf
Busca
phrasefiltermode = 3
Trae por defecto 2, cambialo a 3 y te servira.
Cómo determinar el número total de páginas impresas en Windows
PROBLEMA:
Quiere determinar cuantas páginas se imprimieron con el producto.
SOLUCIÓN:
Siga estos pasos para encontrar el recuento de páginas en el controlador de impresión.
- Dependiendo del sistema operativo, siga uno de estos pasos:
- Windows XP : Haga clic en Inicio y, a continuación, en Impresoras y faxes .
- Windows Vista : En la barra de tareas de Windows, haga clic en el ícono de Windows ( ), en Panel de control y, a continuación, en Impresoras .
- Windows 7 : En la barra de tareas de Windows, haga clic en Inicio ( ) y luego, en Dispositivos e impresoras .
- Haga clic con el botón derecho en el ícono de su producto y a continuación seleccione Propiedades del menú desplegable.
- Haga clic en la ficha General y, a continuación, haga clic en el botón Preferencias de impresión .
- Haga clic en la ficha Básico y, a continuación, haga clic en Acerca de .
- Ubique el recuento de páginas en la parte inferior de la pantalla Acerca de este controlador .figura 1: Ubicación del recuento de páginas1 - Recuento de páginas
lunes, 29 de abril de 2013
Configuración Sony Xperia J para Claro - Ecuador
Configuración del teléfono para poder acceder al plan de datos, mediante un telefono Sony Xperia J, mi nuevo juguete:
Con esto, estaría lista la configuración, enjoy it!!
- MENU
- AJUSTES
- MAS ...
- REDES CELULARES
- PUNTOS DE ACCESO
- CLIC EN EL MENU DERECHO
- CLIC EN APN NUEVO
NOMBRE
Porta Internet (opcional)
APN
internet.porta.com.ec
Proxy
Puerto
NOMBRE
DE USUARIO
CONTRASEÑA
Servidor
MMSC
Proxy
MMS
Puerto
MMS
MCC
740
MNC
01
Tipo
de APN
Default, supl
Con esto, estaría lista la configuración, enjoy it!!
jueves, 28 de febrero de 2013
Funciones de Texto - Genexus
Archivos ASCII Delimitados
Los
archivos ASCII Delimitados son archivos de texto (modificables con
prácticamente cualquier editor de textos) comunmente utilizados para transferir
información entre diferentes aplicaciones.
Este tipo
de archivos puede ser creado con cualquier DBMS (Oracle, SQL Server, FoxPro,
etc.) y presenta las siguientes características:
a.
Cada
línea del archivo representa una fila (o registro)
b.
Los
campos de cada línea están separados por algún delimitador
c.
Los
campos alfanuméricos (Character o Varchar en GeneXus) pueden estar o no
delimitados por comillas (“).
d.
Los
campos numéricos no contienen comas
separadoras de miles y, el separador de decimales es el punto.
El
siguiente, es un ejemplo de un archivo delimitado generado a partir de una
tabla con los campos CodCli, NomCli, CedCli, NacCli:
1,"Martín
Flores",1335789,1960-01-10
2,"Josefina Fernández",3254469,1991-10-12
3,"Alberto
Sarmiento",2546689,1987-11-17
4,"Ignacio
Martínez",526866,1989-12-11
5,"Manuel
González",1523458,1959-07-15
6,"Dalmiro
Schmit",2743357,1961-12-09
7,"Juan
Beltrán",455310,1950-10-12
Con GeneXus
es posible leer este tipo de archivos. Para ello se proveen un conjunto de
funciones que permiten abrir el archivo, leer cada registro, copiar el
contenido de cada campo a variables o atributos de GeneXus y cerrar el archivo.
Por ejemplo, para leer el archivo del ejemplo, el código sería semejante al
siguiente:
&i =
dfropen( "clients.txt", 80, “,”)
do while
dfrnext( ) = 0
&i = dfrgnum( &CliCod)
&i = dfrgtxt( &CliNom )
&i = dfrgnum( &CliCId )
&i = dfrgdate( &CliFecNac, “ymd”,
“-“ )
enddo
&i =
dfrclose( )
Como se ve
en el ejemplo, no existe un esquema de descripción del registro (orden de los
campos) del archivo ASCII delimitado. El orden de los campos está dado por la
secuencia en que se llaman a las funciones dbrgnum, dbrgtxt o dbrgdate. Si la
secuencia fuera incorrecta, los resultados son impredecibles.
También es
posible grabar registros. Esto se realiza en forma análoga a la lectura, mediante
el uso de funciones. Por ejemplo, para grabar el archivo del ejemplo anterior,
el código GeneXus sería el siguiente:
&i =
dfwopen( "clients.txt", ",", '"')
for each
defined by CliNom
&i = dfwpnum( CliCod)
&i = dfwptxt( CliNom )
&i = dfwpnum( CliCId )
&i = dfwpdate( &CliFecNac, “ymd”, “-“ )
&I = dfwnext()
endfor
&i =
dfwclose( )
Lectura de archivos ASCII delimitados
La
siguiente es la descripción detallada de las funciones que permiten acceder y
procesar archivos ASCII delimitados.
dfropen
Abre un archivo
de texto para su procesamiento. Es la primera función que hay que llamar para
comenzar a leer un archivo de texto.
Sintáxis:
dfropen( [,
[, [,
]]])
Parámetros:
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El archivo fue abierto.
-1 Secuencia
incorrecta. Ocurre cuando se llama más de una vez a esta función sin haber
llamado antes a la función dfrclose. Si está activado el trace, se verá el
mensaje ADF0005 indicando este error.
-2 Error
de apertura. Ocurre cuando el archivo identificado por no ha
podido abrirse. La causa puede ser identificada claramente habilitando el trace
y buscando el mensaje con código ADF0001. Lo más común es que el archivo no
exista.
-8 Memoria
insuficiente. Ocurre cuando no es posible reservar un buffer de
bytes. Si está activado el trace, se
verá el mensaje ADF0007 indicando este error.
dfrnext
Lee el
siguiente registro (línea) del archivo de texto delimitado.
Sintáxis:
dfrnext()
Parámetros:
No tiene
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El registro fue leído.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfropen o la llamada a dfropen retornó un valor diferente de cero (error).
-3 Error
de lectura. Ocurre cuando se ha producido un error al leer una línea del
archivo ASCII delimitado. La causa puede ser identificada claramente
habilitando el trace y buscando el mensaje con código ADF0002.
-4 Fin
de datos.
dfrgnum
Lee un campo
de tipo numérico de la línea actual (leída por dfrnext).
Sintáxis:
dfrgnum( )
Parámetros:
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El campo fue leído.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfrnext o la última llamada a dfrnext retornó un valor diferente de cero
(error). Si el trace está habilitado, se verá el mensaje ADF0004 o ADF0006.
-5 Formato
incorrecto. El número en el campo no tiene una forma correcta. La causa más
común es que el campo que se pretende leer sea de otro tipo (character, date,
etc.). Si el trace está habilitado, se verá el mensaje ADF0008.
dfrgtxt
Lee un campo
de tipo character de la línea actual (leída por dfrnext) .
Sintáxis:
dfrgtxt( [, ])
Parámetros:
Retorno:
Esta función puede
retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El campo fue leído.
-1 Secuencia incorrecta.
Ocurre cuando se llama a esta función antes de llamar a la función dfrnext o la
última llamada a dfrnext retornó un valor diferente de cero (error). Si el
trace está habilitado, se verá el mensaje ADF0004 o ADF0006.
-5 Formato incorrecto. El
string en el campo no tiene una forma correcta. La causa más común es que el
campo que se pretende leer sea de otro tipo (number, date, etc.). Si el trace
está habilitado, se verá el mensaje ADF0009.
-6 Overflow. Este es un
warning que indica que el largo del string en el registro es mayor al máximo
especificado (o asumido) en el parámetro . El valor leído es truncado a
caracteres.
dfrgdate
Lee un campo
de tipo date de la línea actual (leída por dfrnext). El valor de fecha leído no es ajustado de acuerto con la preference
Year Limit.
Sintáxis:
dfrgdate( [, [, ]])
Parámetros:
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El campo fue leído.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfrnext o la última llamada a dfrnext retornó un valor diferente de cero
(error). Si el trace está habilitado, se verá el mensaje ADF0004 o ADF0006.
-5 Formato
incorrecto. El string en el campo no tiene una forma correcta. La causa más
común es que el campo que se pretende leer sea de otro tipo (number, date,
etc.).
-7 Fecha
no válida. El valor encontrado en el campo no corresponde a una fecha válida.
Normalmente ocurre porque el formato () o el separador ()
no corresponde a los existentes en el archivo. Si el trace está habilitado, se
verá el mensaje ADF0010.
-10El
parámetro tiene un formato incorrecto. Si el trace está habilitado,
se verá el mensaje ADF0012.
dfrclose
Cierra el
archivo abierto por dfropen. Esta función debe
ser llamada después de una llamada satisfactoria (sin error) a dfropen.
Sintáxis:
dfrclose()
Parámetros:
No tiene.
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El archivo fue cerrado.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfropen o la última llamada a dfropen retornó un valor diferente de cero
(error).
Grabación de archivos ASCII delimitados
La
siguiente es la descripción detallada de las funciones que permiten grabar
archivos ASCII delimitados.
dfwopen
Abre un
archivo de texto para su procesamiento. Es la primera función que hay que
llamar para comenzar a leer un archivo de texto.
Sintáxis:
dfwopen( [, [, ]]])
Parámetros:
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El archivo fue abierto.
-1 Secuencia
incorrecta. Ocurre cuando se llama más de una vez a esta función sin haber
llamado antes a la función dfwclose. Si está activado el trace, se verá el
mensaje ADF0005 indicando este error.
-2 Error
de apertura. Ocurre cuando el archivo identificado por no ha
podido abrirse. La causa puede ser identificada claramente habilitando el trace
y buscando el mensaje con código ADF0001. Lo más común es que el archivo no
exista.
-8 Memoria
insuficiente. Ocurre cuando no es posible reservar un buffer de
bytes. Si está activado el trace, se
verá el mensaje ADF0007 indicando este error.
dfwnext
Graba el
registro con los valores especificados por las llamadas anteriores a dfwptxt,
dfwpnum, etc. en el archivo de texto delimitado.
Sintáxis:
dfwnext()
Parámetros:
No tiene
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El registro fue leído.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfwopen o la llamada a dfwopen retornó un valor diferente de cero (error).
-9 Error
de grabación. Ocurre cuando se ha producido un error al grabar la línea en el
archivo ASCII delimitado. La causa puede ser identificada claramente
habilitando el trace y buscando el mensaje con código ADF0003.
dfwpnum
Graba un
campo de tipo numérico en el registro actual del archivo ASCII delimitado.
Sintáxis:
dfwpnum( , )
Parámetros:
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El campo fue grabado.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfwopen o la última llamada a dfwopen retornó un valor diferente de cero
(error). Si el trace está habilitado, se verá el mensaje ADF0004.
dfwptxt
Graba un
campo de tipo character en el registro actual del archivo ASCII delimitado.
Sintáxis:
dfwptxt( [, ])
Parámetros:
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El campo fue grabado.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfwopen o la última llamada a dfwopen retornó un valor diferente de cero
(error). Si el trace está habilitado, se verá el mensaje ADF0004.
dfwpdate
Graba un
campo de tipo date en el registro actual del archivo ASCII delimitado. Si tiene
el valor nulo de GeneXus, se grabará la fecha "00/00/0000".
Sintáxis:
dfwpdate( [, [, ]])
Parámetros:
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El campo fue grabado.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfwopen o la última llamada a dfwopen retornó un valor diferente de cero
(error). Si el trace está habilitado, se verá el mensaje ADF0004.
-5 Formato
incorrecto. El string en el campo no tiene una forma correcta. La causa más
común es que el campo que se pretende leer sea de otro tipo (number, date,
etc.).
-10El
parámetro tiene un formato incorrecto. Si el trace está habilitado,
se verá el mensaje ADF0012.
dfwclose
Cierra el
archivo abierto por dfwopen. Esta función debe
ser llamada después de una llamada satisfactoria (sin error) a dfwopen.
Sintáxis:
dfwclose()
Parámetros:
No tiene.
Retorno:
Esta función puede retornar alguno de los siguientes valores:
0 Operación
satisfactoria. El archivo fue cerrado.
-1 Secuencia
incorrecta. Ocurre cuando se llama a esta función antes de llamar a la función
dfwopen o la última llamada a dfwopen retornó un valor diferente de cero
(error).
Consideraciones sobre los archivos ASCII delimitados
Sólo puede
estar abierto un archivo ASCII delimitado en un momento específico. La función
dfropen retornará un error si se la llama más de una vez sin haber llamado
previamente a dfrclose.
Es posible
ignorar los campos del final de un registro al llamar a dfrnext cuando queden
campos por leer. No es posible ‘saltearse’ campos. Si se quiere leer el campo
número 5 es necesario leer los 4 anteriores.
Es posible
leer registros con diferentes formatos como en el siguiente ejemplo:
&i = dfropen( "invoices.txt", 80, “,”)
do while dfrnext( ) = 0
&i = dfrgtxt(
&RecType)
if &RecType = “H”
&i = dfrgnum(
&InvNum )
&i = dfrgdate(
&InvDat, “ymd”, “/“)
...
else
&i = dfrgnum(
&PrdNum )
&i = dfrgnum(
&InvQty)
...
endif
enddo
&i = dfrclose( )
Suscribirse a:
Entradas (Atom)