A Software Technologist's Blog (Wanna Email Me?)

Archive for the ‘Python’ Category

I have noticed that there are quite a few requests for a network scanning application to search for Windows shared folders.
I thought this will be an interesting implementation for pysmb (a pure Python implementation of the SMB1 and SMB2 protocol that supports the Windows file sharing functionality) as well as for developers who are learning to use pysmb for their applications.

You will need Python 2.4 and above, and have installed pyasn1 and pysmb. Next, download the ScanNetworkForSMB.py script. Then, run the script with 1 IP address to scan for a single machine, or a start/end IP address pair to scan a range of IP addresses. If the scanned machine has its Windows sharing port (port 137) active, the script will print out its IP address together with the names associated with this machine.

Sample output

$bash> python ScanNetworkForSMB.py
Beginning scanning 255 IP addresses... --> CETUS WORKGROUP --> I7PC WORKGROUP

Query timeout. No replies from 253 IP addresses

smb:// URL Support in pysmb

May-4-2012 By miketeo

Starting from pysmb version 1.0.4, application developers can utilize smb:// URLs with pysmb and urllib2 python package. One benefit from this is that if your existing application already supports downloads via other protocols like http or ftp, you can “upgrade” your application to support downloads from Windows shared folders or from Samba servers by making small modifications to your existing code.

pysmb tries to follow the smb URL scheme proposed in the IETF draft which is not much different from other standard URL schemes like http and ftp. In short, your smb URL should follow this format – smb://[<user>:<password>@]<host>[:<port>][/<share>/<path>/<filename>]

Read the rest of this entry »

pysmb 1.0.0 Released!

Dec-25-2011 By miketeo

About 10 years ago, I have released the first version of pysmb. Since then, Microsoft Windows has made significant changes to the NTLM authentication protocol which causes pysmb to become incompatible with Windows Vista and Windows 7 machines.

Now, with the release of pysmb 1.0.0, you can write Python applications to transfer files on shared folders on Windows XP, Windows Vista and Windows 7, as well as on Unix machines running Samba. pysmb 1.0.0 remains faithful to its clause that it will remain a pure Python SMB/CIFS module without any need for binary compilation. For this to be possible, it has utilized other pure Python modules such as pyDES, MD4 and pyasn1.

In addition to its new compatibilities with the recent Windows OS, pysmb has also been rewritten to support other frameworks. At the moment, a Twisted NetBIOS and SMB/CIFS protocol implementation has been included with pysmb 1.0.0 sources. Please refer to the documentation in the sources for more details.

For more details on pysmb 1.0.0, please go to the pysmb project page to download it, or you can also run: “easy_install pysmb” to install it on your machine.

Python Mutant Tester 0.1.0 Released

Nov-27-2011 By miketeo

I have just released Python Mutant Tester (PyMuTester) version 0.1.0 to the public. More details can be found at the Python Mutant Tester project page.

PyMuTester is a testing tool to facilitate mutant testing in Python applications. By making small (and syntactically correct) modifications to the application’s source code and re-run the unit tests over these mutated source code, we can uncover missed checks and loopholes in the test cases.

Read the rest of this entry »

Hi, I have released a patch to the CLIPS (and also pyclips) expert system which allows CLIPS users to be able to send SQL queries to a PostgreSQL database from the CLIPS environment.

More information can be obtained at the PostgreSQL Extensions for CLIPS Expert System project page.