Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
#141
Dudas y pedidos generales / Re:Ipv4 ipv6
Septiembre 07, 2016, 11:36:47 AM #142
Python / Re:Taller de web scrapping, consumo de apis, etc
Septiembre 07, 2016, 11:35:51 AM
Que raro que ya vi dos consultas en el irc sobre esto, pero nadie se pone a practicar
#143
Dudas y pedidos generales / Re:Pastas Térmicas
Septiembre 06, 2016, 05:05:20 PM
La diferencia entre con y sin, es que con te anda la computadora y sin se rompe
Si no haces overclocking pone la que te vendan en cualquier negocio de electronica o computacion, va a andar bien. Saca el disipador, limpia tanto el disipador como el procesador con alcohol, espera que se evapore, pone un poquito de pasta en el medio del procesador y volve a armar
Si no haces overclocking pone la que te vendan en cualquier negocio de electronica o computacion, va a andar bien. Saca el disipador, limpia tanto el disipador como el procesador con alcohol, espera que se evapore, pone un poquito de pasta en el medio del procesador y volve a armar
#144
Dudas y pedidos generales / Re:Tengo una dirección IP dinámica ¿De me sirve hacerme DynDNS o NoIP?
Septiembre 04, 2016, 09:51:05 PM
Mas casos de usos: tenes un servidor en tu casa y queres conectarte desde otro lado para bajar archivos, como la ip cambia necesitas un dominio que apunte a la ip correcta
creo que You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login tienen eso gratis
creo que You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login tienen eso gratis
#145
Dudas y pedidos generales / Re:[SOLUCIONADO] Apache web server XAMPP en kali linux
Septiembre 04, 2016, 09:44:00 PM
fijate que en la configuracion hay lineas que son ignoradas, seguramente empiezan con # o algun otro caracter raro. hace lo mismo con esa para que no se ejecute. Tambien la podes borrar
#146
Dudas y pedidos generales / Re:C# - Recursividad: Problemas donde conviene aplicar la recursividad
Septiembre 04, 2016, 09:42:41 PM
yo no fui
#147
Dudas y pedidos generales / Re:Metasploit crashea en la instalación
Septiembre 02, 2016, 02:22:10 PM #148
Dudas y pedidos generales / Re:Apache web server XAMPP en kali linux
Septiembre 02, 2016, 02:20:43 PM
Te falta /opt/lampp/modules/mod_ssl.so
Es para usar https, asi que si no lo necesitas podes comentar la linea que te dice ahi
Es para usar https, asi que si no lo necesitas podes comentar la linea que te dice ahi
#149
Dudas y pedidos generales / Re:C# - Recursividad: Problemas donde conviene aplicar la recursividad
Septiembre 01, 2016, 07:22:42 PM #150
Dudas y pedidos generales / Re:En que me afecta un SQLi
Septiembre 01, 2016, 07:16:27 PM
Puede haber SQLi en cualquier programa que use sql, no necesariamente una web
#151
Dudas y pedidos generales / Re:Metasploit crashea en la instalación
Septiembre 01, 2016, 07:14:51 PM
Lo estas corriendo desde una consola? no se deberia cerrar
#152
Dudas y pedidos generales / Re:PHP comandos eval()
Agosto 31, 2016, 09:02:19 PM
tenes que usar FILE_APPEND, en el link que pase yo lo explica
#153
Dudas y pedidos generales / Re:C# - Recursividad: Problemas donde conviene aplicar la recursividad
Agosto 31, 2016, 08:59:26 PM
Es la posicion del label
#154
Dudas y pedidos generales / Re:PHP comandos eval()
Agosto 31, 2016, 01:26:51 AM #155
Soluciones de Wargames / Re:Completando CTF Mr. Robot
Agosto 30, 2016, 06:50:51 PM
me quedaron unas dudas
nmap estaba con setuid, no? como se dieron cuenta?
ademas es una version muy vieja. La mia no tiene --interactive. Sigue existiendo con otro nombre?
nmap estaba con setuid, no? como se dieron cuenta?
ademas es una version muy vieja. La mia no tiene --interactive. Sigue existiendo con otro nombre?
#156
Dudas y pedidos generales / Re:¿Cómo podría programar un panel web para una Botnet?
Agosto 30, 2016, 06:42:02 PM
Donde lo vas a hostear? si es en un host gratuito o en uno hackeado, te conviene php porque es lo que mas se usa
ademas, hay muchos tutoriales de php apuntados a principiantes
Si podes elegir cualquiera, seguramente con node o python lo harias mas rapido
ademas, hay muchos tutoriales de php apuntados a principiantes
Si podes elegir cualquiera, seguramente con node o python lo harias mas rapido
#157
Python / Re:Taller de web scrapping, consumo de apis, etc
Agosto 29, 2016, 09:00:27 PM
Bueno, no se por que esto está en off topic, pero arrancamos con el primer post (el que puede lo manda a python? o capaz talleres underc0de, donde corresponda)
Vamos a usar python 2.7
Para hacer peticiones http vamos a usar la libreria requests. Es facil de usar y tiene buena documentacion (leanla cuando quieran hacer algo que no expliqué): You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Cuando vean codigo corranlo, no se queden con lo que yo les digo que hace. Tambien puede ser util y modificandolo para ver que pasa.
Todos saben que es http, no? Es el protocolo que se usa en las webs. https es http cifrado y para nuestro uso va a ser exactamente lo mismo porque eso lo maneja la libreria.
Cada vez que abris una web, el navegador se conecta al servidor y le hace una peticion. Cada vez que mandas un formulario, lo mismo. También cuando carga css, imagenes, javascript, etc. (si, se pueden reusar conexiones pero queda afuera de esto que voy a explicar).
La mayoria de estas peticiones son del tipo GET. En las peticiones get, todos los parametros se pasan en la url. A veces, cuando mandas un formulario se usa POST en lugar de GET. En POST, podes mandar datos que no van por la url, van por otro lado, y por lo tanto pueden ser mas grandes.
Hay mas métodos que no se suelen usar en webs.
Hagamos un get al index del foro:
Código: python
Como se hacer eso? está en el link que pasé de la libreria
Si da un error de la libreria requests, hay que instalarla con pip install requests
Eso nos va a imprimir el html del indice del foro. Esto del web scrapping se trata de sacar datos, asi que vamos a tratar de sacar la cantidad de usuarios en linea. Nos importa buscar donde está ese dato y que tiene alrededor, como para poder hacer que el programa lo identifique:
Código: html5
Quiero sacar ese 209, que va a ir cambiando, y mostrarlo con el programa.
Hay varias formas de sacar eso. Nosotros no vamos a tratar de parsear el html, si no que vamos a hacerlo de una forma un poco mas bruta, con expresiones regulares. Vieron cuando en un buscador podes poner * y ? para que hagan de comodines? las expresiones regulares son algo asi, pero muchisimo mas potentes.
En python hay que usar el modulo re:
Código: python
Documentacion:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Se usa asi:
Por ejemplo:
Código: python
El primer print va a devolver None, porque no encontró "planeta" en "hola mundo" y el segundo va a devolver un objeto del tipo SRE_Match. Esto nos permite hacer un if:
Código: python
Hasta ahi es lo mismo que las funciones de busqueda en cadenas, pero podemos usar muchos caracteres que en una expresion regular tienen un significado especial.
Por ejemplo, un . va a ser un comodin que matchea con cualquier caracter:
Código: python
eso va a entrar por el true
Si quiero que el . sea interpretado como un . literal, hay que escaparlo asi: \.
Reemplazando en el ejemplo anterior las variables por esto, no va a matchear:
Código: python
Pero asi si:
Código: python
Con un * va a matchear el caracter anterior entre 0 e infinitas veces. Ejemplos:
Código: python
Código: python
Código: python
Los tres matchean. También podemos combinar eso con un ., que matchearia casi cualquier cosa:
Código: python
Esto no nos está alcanzando, porque nosotros queremos extraer datos. Esto se hace envolviendo en parentesis la parte que va a matchear con los datos que queremos. Para ver que es lo que matchearon los parentesis, usamos el metodo .groups() del objeto que nos devuelve .search():
Código: python
El resultado:
Código: text
Eso es una tupla, que en este caso tiene un solo resultado. Tambien pueden haber dos:
Código: python
Resultado:
Código: text
Vamos con otro caso:
Código: python
Que va a devolver? "erc0" o "erc0de underc0"? Resulta que el * va a matchear todo lo que pueda, asi que devuelve algo que probablemente no sea lo que buscamos:
Código: text Para que matchee lo minimo posible hay que agregarle un ?:
Código: python
Esto es muy util, por ejemplo, si tenemos un html asi:
Código: html5
La expresion regular que queremos es esta:
Código: text
Sin el ? tambien va a traer el </div>
Para acceder a cada dato particular podemos usar .group(ID+1), donde ID es el indice de la tupla. Hay que sumarle 1 porque .group(0) devuelve todo lo que matcheo, no solo lo que va entre parentesis.
Volvamos a lo de sacar el 209 de aca:
Código: html5
La expresion regular puede ser esta:
Código: text
Y el codigo nos quedaria asi:
Código: python
Eso nos imprime la cantidad de usuarios conectados
Ahora quiero sacar la lista de los ultimos mensajes publicados, esa que sale abajo. El html es asi:
Código: html5
La complicacion es que queremos matchear varios posts con una sola regexp, para eso vamos a usar re.findall():
Código: python
Presten atencion a que usamos .*? para que matchee con cualquier url, pero no nos interesa capturarlas.
Nos va a imprimir una lista. Cada elemento de esa lista es uno de los matches:
Código: text
Ahora, si agregamos parentesis para capturar las urls nos va a devolver una lista de tuplas, donde cada tupla tiene la url y el titulo del post:
Código: python
Código: text
Les dejo como ejercicio hacer una funcion que devuelva una lista con todos los nombres de los usuarios que aparecen abajo de " Usuarios activos en los últimos 25 minutos:", llamarla y mostrar el resultado. Cuando lo tengan o se traben posteen el codigo
Puede ser que tengan que escapar algunos caracteres especiales, aunque lo dudo. Si hace falta, acuerdense de que es escapan con \
También puede ser que hagan una expresion regular que matchee con mas datos que los que buscamos. Por ejemplo, puede ser que traiga los nombres de los usuarios que salen al lado de los titulos de los posts. Pueden tratar de hacer una expresion regular mas compleja, o capaz dos: una que matchee el div en el que estan los datos y otra que saque los usuarios de ahi adentro.
Vamos a usar python 2.7
Para hacer peticiones http vamos a usar la libreria requests. Es facil de usar y tiene buena documentacion (leanla cuando quieran hacer algo que no expliqué): You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Cuando vean codigo corranlo, no se queden con lo que yo les digo que hace. Tambien puede ser util y modificandolo para ver que pasa.
Todos saben que es http, no? Es el protocolo que se usa en las webs. https es http cifrado y para nuestro uso va a ser exactamente lo mismo porque eso lo maneja la libreria.
Cada vez que abris una web, el navegador se conecta al servidor y le hace una peticion. Cada vez que mandas un formulario, lo mismo. También cuando carga css, imagenes, javascript, etc. (si, se pueden reusar conexiones pero queda afuera de esto que voy a explicar).
La mayoria de estas peticiones son del tipo GET. En las peticiones get, todos los parametros se pasan en la url. A veces, cuando mandas un formulario se usa POST en lugar de GET. En POST, podes mandar datos que no van por la url, van por otro lado, y por lo tanto pueden ser mas grandes.
Hay mas métodos que no se suelen usar en webs.
Hagamos un get al index del foro:
import requests #importa la libreria requests
resultado = requests.get("https://underc0de.org/foro/index.php") #dentro del modulo requests, busca la funcion get
print resultado.text #el resultado es un objeto con varios metodos y propiedades, por ahora usamos .textComo se hacer eso? está en el link que pasé de la libreria
Si da un error de la libreria requests, hay que instalarla con pip install requests
Eso nos va a imprimir el html del indice del foro. Esto del web scrapping se trata de sacar datos, asi que vamos a tratar de sacar la cantidad de usuarios en linea. Nos importa buscar donde está ese dato y que tiene alrededor, como para poder hacer que el programa lo identifique:
<p class="inline stats">
1738 Visitantes, 209 Usuarios (16 Arañas, 2 Oculto(s))
</p>Quiero sacar ese 209, que va a ir cambiando, y mostrarlo con el programa.
Hay varias formas de sacar eso. Nosotros no vamos a tratar de parsear el html, si no que vamos a hacerlo de una forma un poco mas bruta, con expresiones regulares. Vieron cuando en un buscador podes poner * y ? para que hagan de comodines? las expresiones regulares son algo asi, pero muchisimo mas potentes.
En python hay que usar el modulo re:
import reDocumentacion:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Se usa asi:
Cita de: pythonYou are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("regexp", "string")Donde regexp es la expresion regular y string es el texto en el que va a buscar (en nuestro caso, resultado.text)
Por ejemplo:
import re
print re.search("planeta", "hola mundo")
print re.search("mundo", "hola mundo")
El primer print va a devolver None, porque no encontró "planeta" en "hola mundo" y el segundo va a devolver un objeto del tipo SRE_Match. Esto nos permite hacer un if:
import requests
import re
resultado = requests.get("https://underc0de.org/foro/index.php")
if re.search("underc0de", resultado.text):
print "se encontro underc0de en el html del index"
else:
print "no se encontro underc0de en el html del index"
if re.search("elefante", resultado.text):
print "se encontro elefante en el html del index"
else:
print "no se encontro elefante en el html del index"
Hasta ahi es lo mismo que las funciones de busqueda en cadenas, pero podemos usar muchos caracteres que en una expresion regular tienen un significado especial.
Por ejemplo, un . va a ser un comodin que matchea con cualquier caracter:
import re
regexp = "unde.c0de"
texto = "underc0de"
if re.search(regexp, texto):
print texto + " matchea con " + regexp
else:
print texto + " NO matchea con " + regexp
eso va a entrar por el true
Si quiero que el . sea interpretado como un . literal, hay que escaparlo asi: \.
Reemplazando en el ejemplo anterior las variables por esto, no va a matchear:
regexp = "unde\.c0de"
texto = "underc0de"
Pero asi si:
regexp = "unde\.c0de"
texto = "unde.c0de"
Con un * va a matchear el caracter anterior entre 0 e infinitas veces. Ejemplos:
regexp = "under*c0de"
texto = "underc0de"
regexp = "under*c0de"
texto = "underrrc0de"
regexp = "under*c0de"
texto = "undec0de"Los tres matchean. También podemos combinar eso con un ., que matchearia casi cualquier cosa:
regexp = ".*"
texto = "underc0de"Esto no nos está alcanzando, porque nosotros queremos extraer datos. Esto se hace envolviendo en parentesis la parte que va a matchear con los datos que queremos. Para ver que es lo que matchearon los parentesis, usamos el metodo .groups() del objeto que nos devuelve .search():
import re
resultado = re.search("un(.*)de", "underc0de")
print resultado.groups()
El resultado:
('derc0',)
Eso es una tupla, que en este caso tiene un solo resultado. Tambien pueden haber dos:
import re
resultado = re.search("u(.*)r(.*)e", "underc0de")
print resultado.groups()Resultado:
('nde', 'c0d')
Vamos con otro caso:
import re
resultado = re.search("und(.*)de", "underc0de underc0de")
print resultado.groups()
Que va a devolver? "erc0" o "erc0de underc0"? Resulta que el * va a matchear todo lo que pueda, asi que devuelve algo que probablemente no sea lo que buscamos:
('derc0de underc0',)
import re
resultado = re.search("und(.*?)de", "underc0de underc0de")
print resultado.groups()
Esto es muy util, por ejemplo, si tenemos un html asi:
<div id="sidebar"><div id="dato_que_queremos">EL DATO ACA</div></div>La expresion regular que queremos es esta:
<div id="dato_que_queremos">(.*?)</div>Sin el ? tambien va a traer el </div>
Para acceder a cada dato particular podemos usar .group(ID+1), donde ID es el indice de la tupla. Hay que sumarle 1 porque .group(0) devuelve todo lo que matcheo, no solo lo que va entre parentesis.
Volvamos a lo de sacar el 209 de aca:
<p class="inline stats">
1738 Visitantes, 209 Usuarios (16 Arañas, 2 Oculto(s))
</p>La expresion regular puede ser esta:
Visitantes, (.*?) UsuariosY el codigo nos quedaria asi:
import requests
import re
web = requests.get("https://underc0de.org/foro/index.php")
regexp = 'Visitantes, (.*?) Usuarios'
resultado = re.search(regexp, web.text)
print resultado.group(1)
Eso nos imprime la cantidad de usuarios conectados
Ahora quiero sacar la lista de los ultimos mensajes publicados, esa que sale abajo. El html es asi:
<dl id="ic_recentposts" class="middletext">
<dt><strong><a href="https://underc0de.org/foro/dudas-generales-121/la-ram/msg104688/?topicseen#msg104688" rel="nofollow">Re:Ocupar la memoria RAM de procesos inutiles</a></strong> por <a href="https://underc0de.org/foro/profile/selohu/">selohu</a> (<a href="https://underc0de.org/foro/dudas-generales-121/">Dudas y pedidos generales</a>)</dt>
<dd><strong>Hoy</strong> a las 07:14:59 pm</dd>
<dt><strong><a href="https://underc0de.org/foro/dudas-generales-121/kali-payload-y-no-ip-ataque-fuera-lan/msg104687/?topicseen#msg104687" rel="nofollow">Re:kali payload y no-ip ataque fuera lan</a></strong> por <a href="https://underc0de.org/foro/profile/blackdrake/">blackdrake</a> (<a href="https://underc0de.org/foro/dudas-generales-121/">Dudas y pedidos generales</a>)</dt>
<dd><strong>Hoy</strong> a las 07:11:33 pm</dd>
<dt><strong><a href="https://underc0de.org/foro/dudas-generales-121/android-duda-base-de-datos/msg104686/?topicseen#msg104686" rel="nofollow">Re:Android - Duda Base de Datos para camareros en un bar</a></strong> por <a href="https://underc0de.org/foro/profile/seth/">seth</a> (<a href="https://underc0de.org/foro/dudas-generales-121/">Dudas y pedidos generales</a>)</dt>
<dd><strong>Hoy</strong> a las 07:10:00 pm</dd>
<dt><strong><a href="https://underc0de.org/foro/dudas-generales-121/dudas-sin-aclarar/msg104685/?topicseen#msg104685" rel="nofollow">Re:Empezar en las ramas de Phishing y Programación</a></strong> por <a href="https://underc0de.org/foro/profile/blackdrake/">blackdrake</a> (<a href="https://underc0de.org/foro/dudas-generales-121/">Dudas y pedidos generales</a>)</dt>
<dd><strong>Hoy</strong> a las 07:08:29 pm</dd>
<dt><strong><a href="https://underc0de.org/foro/dudas-generales-121/stub-limpio-server-detectado-por-que/msg104684/?topicseen#msg104684" rel="nofollow">Re:stub limpio server detectado, por que?</a></strong> por <a href="https://underc0de.org/foro/profile/blackdrake/">blackdrake</a> (<a href="https://underc0de.org/foro/dudas-generales-121/">Dudas y pedidos generales</a>)</dt>
<dd><strong>Hoy</strong> a las 07:06:05 pm</dd>
<dt><strong><a href="https://underc0de.org/foro/dudas-generales-121/symlink/msg104683/?topicseen#msg104683" rel="nofollow">Re:Symlink</a></strong> por <a href="https://underc0de.org/foro/profile/blackdrake/">blackdrake</a> (<a href="https://underc0de.org/foro/dudas-generales-121/">Dudas y pedidos generales</a>)</dt>
<dd><strong>Hoy</strong> a las 07:03:10 pm</dd>
<dt><strong><a href="https://underc0de.org/foro/dudas-generales-121/que-me-aconsejan-en-ventiladores-y-muestras-de-mis-datos/msg104682/?topicseen#msg104682" rel="nofollow">Re:Que me aconsejan en ventiladores y muestras de mis datos.</a></strong> por <a href="https://underc0de.org/foro/profile/selohu/">selohu</a> (<a href="https://underc0de.org/foro/dudas-generales-121/">Dudas y pedidos generales</a>)</dt>
<dd><strong>Hoy</strong> a las 06:35:01 pm</dd>
</dl>La complicacion es que queremos matchear varios posts con una sola regexp, para eso vamos a usar re.findall():
import requests
import re
web = requests.get("https://underc0de.org/foro/index.php")
regexp = '<dt><strong><a href=".*?" rel="nofollow">(.*?)</a></strong>'
resultado = re.findall(regexp, web.text)
print resultado
Presten atencion a que usamos .*? para que matchee con cualquier url, pero no nos interesa capturarlas.
Nos va a imprimir una lista. Cada elemento de esa lista es uno de los matches:
[u'Re:[Ayuda] Window no se monta en el grub (est\xe1 cifrado)', u'Re:Saber ID De Un objeto JQuery ?', u'Re:Ocupar la memoria RAM de procesos inutiles', u'Re:kali payload y no-ip ataque fuera lan', u'Re:Android - Duda Base de Datos para camareros en un bar', u'Re:Empezar en las ramas de Phishing y Programaci\xf3n', u'Re:stub limpio server detectado, por que?']Ahora, si agregamos parentesis para capturar las urls nos va a devolver una lista de tuplas, donde cada tupla tiene la url y el titulo del post:
import requests
import re
web = requests.get("https://underc0de.org/foro/index.php")
regexp = '<dt><strong><a href="(.*?)" rel="nofollow">(.*?)</a></strong>'
resultado = re.findall(regexp, web.text)
print resultado
[(u'https://underc0de.org/foro/dudas-generales-121/(ayuda)-window-no-se-monta-en-el-grub-(-esta-cifrado)/msg104690/?topicseen;PHPSESSID=ub91qif2cdbng1itkjomd0g646#msg104690', u'Re:[Ayuda] Window no se monta en el grub (est\xe1 cifrado)'), (u'https://underc0de.org/foro/dudas-generales-121/saber-id-de-un-objeto-jquery/msg104689/?topicseen;PHPSESSID=ub91qif2cdbng1itkjomd0g646#msg104689', u'Re:Saber ID De Un objeto JQuery ?'), (u'https://underc0de.org/foro/dudas-generales-121/la-ram/msg104688/?topicseen;PHPSESSID=ub91qif2cdbng1itkjomd0g646#msg104688', u'Re:Ocupar la memoria RAM de procesos inutiles'), (u'https://underc0de.org/foro/dudas-generales-121/kali-payload-y-no-ip-ataque-fuera-lan/msg104687/?topicseen;PHPSESSID=ub91qif2cdbng1itkjomd0g646#msg104687', u'Re:kali payload y no-ip ataque fuera lan'), (u'https://underc0de.org/foro/dudas-generales-121/android-duda-base-de-datos/msg104686/?topicseen;PHPSESSID=ub91qif2cdbng1itkjomd0g646#msg104686', u'Re:Android - Duda Base de Datos para camareros en un bar'), (u'https://underc0de.org/foro/dudas-generales-121/dudas-sin-aclarar/msg104685/?topicseen;PHPSESSID=ub91qif2cdbng1itkjomd0g646#msg104685', u'Re:Empezar en las ramas de Phishing y Programaci\xf3n'), (u'https://underc0de.org/foro/dudas-generales-121/stub-limpio-server-detectado-por-que/msg104684/?topicseen;PHPSESSID=ub91qif2cdbng1itkjomd0g646#msg104684', u'Re:stub limpio server detectado, por que?')]
Les dejo como ejercicio hacer una funcion que devuelva una lista con todos los nombres de los usuarios que aparecen abajo de " Usuarios activos en los últimos 25 minutos:", llamarla y mostrar el resultado. Cuando lo tengan o se traben posteen el codigo
Puede ser que tengan que escapar algunos caracteres especiales, aunque lo dudo. Si hace falta, acuerdense de que es escapan con \
También puede ser que hagan una expresion regular que matchee con mas datos que los que buscamos. Por ejemplo, puede ser que traiga los nombres de los usuarios que salen al lado de los titulos de los posts. Pueden tratar de hacer una expresion regular mas compleja, o capaz dos: una que matchee el div en el que estan los datos y otra que saque los usuarios de ahi adentro.
#158
Dudas y pedidos generales / Re:Android - Duda Base de Datos para camareros en un bar
Agosto 29, 2016, 07:10:00 PM
Aprende sql con cualquier tutorial que encuentres, una vez que sepas los basico, pasarte a sqlite es muy facil. Yo use You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login pero capaz encontras algo mejor
Si bien el diseño ya lo tenes mas o menos hecho, podes googlear sobre modelado conceptual, modelado fisico y normalizacion de bases de datos
Lo del servidor yo pensaba que, por ejemplo, podes querer ver desde la computadora del que maneja la caja cuanto se recaudó en el dia. No vas a pedirle a todos los mozos que te digan cuando tienen sumado y hacer la cuenta a mano, lo mas logico seria tener toda la informacion en una sola db. Un servidor puede ser tranquilamente una computadora que esta atras de la barra o metida abajo de tu cama (no va a ser lo mas confiable, pero una vez que sabes que funciona todo, el costo de un vps es muy bajo para un bar)
Igual no te compliques, segui con una db por dispositivo como lo tenes pensado
Si bien el diseño ya lo tenes mas o menos hecho, podes googlear sobre modelado conceptual, modelado fisico y normalizacion de bases de datos
Lo del servidor yo pensaba que, por ejemplo, podes querer ver desde la computadora del que maneja la caja cuanto se recaudó en el dia. No vas a pedirle a todos los mozos que te digan cuando tienen sumado y hacer la cuenta a mano, lo mas logico seria tener toda la informacion en una sola db. Un servidor puede ser tranquilamente una computadora que esta atras de la barra o metida abajo de tu cama (no va a ser lo mas confiable, pero una vez que sabes que funciona todo, el costo de un vps es muy bajo para un bar)
Igual no te compliques, segui con una db por dispositivo como lo tenes pensado
#159
Dudas y pedidos generales / Re:Poner Teclado por defectp (ingles)
Agosto 28, 2016, 11:57:09 PM
El idioma del teclado hace que puedas poner o no la ñ y te cambia la posicion de los caracteres especiales, no tiene nada que ver con esto
ejecuta "pwd" para saber si estas en el directorio correcto y "ls -l" para ver que carpetas hay ahi adentro
ejecuta "pwd" para saber si estas en el directorio correcto y "ls -l" para ver que carpetas hay ahi adentro
#160
Dudas y pedidos generales / Re:Programa para capturar datos ram
Agosto 28, 2016, 10:34:59 PM
You are not allowed to view links.
You are not allowed to view links.
Register or Login or You are not allowed to view links.
Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

