Sunday, October 14, 2012

WPA Suplicant How to

wpa_supplicant short guide

1. Download last stable supplicant from http://hostap.epitest.fi/wpa_supplicant/
2. Install libssl-dev, if it wasn’t installed
3. Install wpa-gui
On Debian-based:
sudo apt-get install wpagui
4. Backup your /etc/resolv.conf
cp /etc/resolv.conf/etc/resolv.conf.old
5. Stop your systems network-manager, to stop wpa_supplicant
sudo invoke-rc.d network-manager stop
6. Restore your /etc/resolv.conf from backup mv /etc/resolv.conf.old/etc/resolv.conf
7. Create or edit your wpa_supplicant.conf, example, which is working for me:
cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=users
8. Go to wpa_supplicant directory and create a config file:
cd wpa_supplicant-0.7.3/wpa_supplicant/
cp defconfig .config
9. Enable WPS support by editing .config file
cd wpa_supplicant-0.7.3/wpa_supplicant/
vim ./config
uncomment the following line:
CONFIG_WPS=y
9. Build supplicant, which was downloaded
cd wpa_supplicant-0.7.3/wpa_supplicant/
make
10. Start your supplicant
sudo ./wpa_supplicant -i<wireless interface> -c/etc/wpa_supplicant.conf -d
11. Start your wpa_cli
sudo ./wpa_cli -p /var/run/wpa_supplicant -i <wireless interface>

Performing WPS using wpa_cli
1. Initiate scan in wpa_cli:
In wpa_cli console type:
>scan
to show scan results:
>scan_result

2. WPS-PIN
In wpa_cli console type:
>wps_pin <BSSID> <PIN>
3. WPS-PBC
In wpa_cli console type:
>wps_pbc <BSSID>
wpa_cli will ensure you that client is connected.
By the way, use help:
>help
Performing WPS using wpa_gui
1. Start wpa_gui
Alt+F2 ---> gksu wpa_gui
2. Choose WPS tab
3. Press “Generate PIN” button
4. Copy generated PIN to yours device WEB gui and start WPS.
5. Ensure that your client is connected.

Have fun!:)

Friday, August 24, 2012

xpath usage \ шпаргалка по работае с xpath


// Get all elements that equal the string cat
String xpath = "//*[.='cat']";                       // 2 6

// Get all elements that equal the string dog
xpath = "//*[.='dog']";                              // (none)
// Note that element #3 does not match because its
// content is " dog " rather than "dog"

// Get all elements that contain the string cat
xpath = "//*[contains(.,'cat')]";                    // 1 2 4 5 6

// Get all elem3 elements that contain the string cat
xpath = "//elem3[contains(.,'cat')]";                // 6

// Get all elements that contain the string cat,
// ignoring the contents of any subelements
xpath = "//*[contains(child::text(),'cat')]";        // 2 4 6

// Get all elements without subelements and whose contents contains the string cat
xpath = "//*[count(*)=0 and contains(.,'cat')]";     // 2 6
XPath 1.0 does not support case-insensitive matches. However, a simple case-insensitive match can be done using thetranslate() function, which converts a string by mapping one character into another:
// Get all elements that contain the string cat, ignoring case
xpath = "//*[contains(translate(.,'abcdefghijklmnopqrstuvwxyz',"
    + " 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'),'CAT')]";
// 1 2 4 5 6 7










Source: http://www.exampledepot.com/egs/org.w3c.dom/xpath_GetElemByText.html

Thursday, July 19, 2012

Selenium and Python заметки

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys


driver.find_element_by_id('locator') или driver.find_element(By.NAME, value="locator")
второй вариант в некоторых случаях более удобен и универсален.


from whrandom import choice
import string

def GenPasswd():
    chars = string.letters + string.digits
    for i in range(8):
        newpasswd = newpasswd + choice(chars)
    return newpasswd

def GenPasswd2(length=8, chars=string.letters + string.digits):
    return ''.join([choice(chars) for i in range(length)])


Thursday, May 24, 2012

Send email via python

Иногда появляется необходимость, чтобы автоматически приходил простой гугловый имейл по какому-либо событию, мне нужно было, чтобы по результату теста. Немного поиска и нашел решение. В python есть замечательная библиотека smtplib, которая в несколько строк помогает решить задачу. Можно сделать более удобно, добавить вложения c логами, но на данный момент мне этого было достаточно. 

import smtplib
msg=""

subject = ""

def sendanemail(subj, message):
sender = 'sendername@gmail.com'
clientadderss = 'clientaddress@gmail.com'
sendername = 'sendername'
password = 'password'

server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()

subject =  subj
msg = "" + msg + ""

server.login(sendername,password)
headers = ["From: " + sender,
           "Subject: " + subject,
           "To: " + clientadderss,
           "MIME-Version: 1.0",
           "Content-Type: text/html"]

headers = "\r\n".join(headers)
server.sendmail(sender, clientadderss, headers + "\r\n\r\n" + msg)
server.quit()


subject = "test message with Python"
msg = "Epic fail:)" 
if testfail:
          sendanemail(msg)

Friday, May 18, 2012

Ubuntu 12.04 Restore Grub

Вообщем обновлялся с флешки на новую убунту с многолетней поддержкой, и вспешке убил загрузчик.  А точнее поставил его на флешку. Конечно хорошо, ноут загружается только если есть флешка, но как-то неудобно.
По быстрому проблема решилась с помощью утилиты boot-repair.

sudo add-apt-repository ppa:yannubuntu/boot-repair 
sudo apt-get update
sudo apt-get install -y boot-repair

Подходит для Ubuntu 10.04/10.10/11.04/11.10/12.04