xml version 1.0 encoding utf 8
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 6407
XMLSysInfo 1.0 Beta 2
XMLSysInfo is a system monitoring daemon that replies to network queries with XML-encoded system information and statistics. more>>
XMLSysInfo is a system monitoring daemon that replies to network queries with XML-encoded system information and statistics. This data can then be analyzed, graphed or otherwise presented by a front-end. It is BSD-licensed and free for anyone to use for any purpose.
Or, because it sounds so much better:
XSI is an agile, vertical XML application for mission-critical enterprise environments that leverages collective synergy to drive "outside of the box" thinking and formulate key objectives into a win-win game plan with a quality-driven approach that focuses on empowering key players to drive-up their core competencies and increase expectations with an all-around initiative to drive up the bottom-line.
It is currently under heavy development and in its "alpha" stage. The XML output grammar may still change a bit, but all in all, "beta" is approaching fast.
Main features:
System information:
- Hardware
- CPUs and load distribution on CPU states
- Interrupts
- Memory and swap space
- Operating system
Sensors:
- Temperature
- Fan RPM
- Voltage
- Disk drives
- Indicators
- ...
Storage devices:
- Filesystems
- Disk (I/O)
- RAID arrays (optional)
Network:
- Information and statistics per interface
- Packet filter statistics (optional)
<<lessOr, because it sounds so much better:
XSI is an agile, vertical XML application for mission-critical enterprise environments that leverages collective synergy to drive "outside of the box" thinking and formulate key objectives into a win-win game plan with a quality-driven approach that focuses on empowering key players to drive-up their core competencies and increase expectations with an all-around initiative to drive up the bottom-line.
It is currently under heavy development and in its "alpha" stage. The XML output grammar may still change a bit, but all in all, "beta" is approaching fast.
Main features:
System information:
- Hardware
- CPUs and load distribution on CPU states
- Interrupts
- Memory and swap space
- Operating system
Sensors:
- Temperature
- Fan RPM
- Voltage
- Disk drives
- Indicators
- ...
Storage devices:
- Filesystems
- Disk (I/O)
- RAID arrays (optional)
Network:
- Information and statistics per interface
- Packet filter statistics (optional)
Download (0.48MB)
Added: 2007-02-13 License: MIT/X Consortium License Price:
983 downloads
tX XML editor 1.2
tX, formerly known as Teddy, is a tabular XML editor. more>>
tX, formerly known as Teddy, is a tabular XML editor. tX XML editor presents the structure and content of XML files in a way that is both visually pleasing and easy to use.
Its features include the abiltiy to view XML in an hierarchical way without extraneous syntax or interface elements, edit data like a spreadsheet, enter data without having to worry about encoding rules, make major structural changes with minimal effort, cut and paste between most spreadsheet applications, and export to HTML.
Main features:
- Teddy is now rebranded as tX - Tabular XML editor.
- Compilation under Qt4.
- Elements without subelements have a closing "../>" instead of .
- Attribute-value quotes changed from to ".
- New menu icons - some original, some from art.gnome.org.
- German language translation.
- A new tab called "Help Text" provides a generic help-system for XML-Files. In this tab it is possible to display user documentation: If either the working-directory or the directory of the current xml file has a sub-directory with the name of the DTD, a right-click on an element ( ) will load and display a file called "element_name.html" in the QTextBrowser-Widget. A right-click on the attribute (attribute-name="...") will jump to the "element_name.html#attribute_name" section of the html help file.
<<lessIts features include the abiltiy to view XML in an hierarchical way without extraneous syntax or interface elements, edit data like a spreadsheet, enter data without having to worry about encoding rules, make major structural changes with minimal effort, cut and paste between most spreadsheet applications, and export to HTML.
Main features:
- Teddy is now rebranded as tX - Tabular XML editor.
- Compilation under Qt4.
- Elements without subelements have a closing "../>" instead of .
- Attribute-value quotes changed from to ".
- New menu icons - some original, some from art.gnome.org.
- German language translation.
- A new tab called "Help Text" provides a generic help-system for XML-Files. In this tab it is possible to display user documentation: If either the working-directory or the directory of the current xml file has a sub-directory with the name of the DTD, a right-click on an element ( ) will load and display a file called "element_name.html" in the QTextBrowser-Widget. A right-click on the attribute (attribute-name="...") will jump to the "element_name.html#attribute_name" section of the html help file.
Download (0.20MB)
Added: 2006-06-19 License: GPL (GNU General Public License) Price:
1224 downloads
Right Encoding 0.2.2 for Firefox
Right Encoding allows you to select the Character Encoding from the context menu. more>>
Right Encoding allows you to select the Character Encoding from the context menu.
Adds the Character Encoding menu to the context menu.
Main features:
- Allows you to set the character encoding of a whole page.
- Allows you to set the character encoding of a certain frame.
Supports:
- Firefox 0.9 - 2.0.0.*
- Thunderbird 1.0 - 1.5.0.*
Enhancements:
- Supports Firefox 2.0.0.*
<<lessAdds the Character Encoding menu to the context menu.
Main features:
- Allows you to set the character encoding of a whole page.
- Allows you to set the character encoding of a certain frame.
Supports:
- Firefox 0.9 - 2.0.0.*
- Thunderbird 1.0 - 1.5.0.*
Enhancements:
- Supports Firefox 2.0.0.*
Download (0.003MB)
Added: 2007-04-17 License: MPL (Mozilla Public License) Price:
926 downloads
iPod Video Encoder 1.0.2
iPod Video Encoder is a command line tool for convenient encoding of video files for use on iPod video. more>>
iPod Video Encoder is a command line tool for convenient encoding of video files for use on iPod video. iPod Video Encoder project uses the ffmpeg tool for the actual encoding.
It features recursive encoding of all files in a directory, and generating a podcast.xml file for convenient use in iTunes.
It can be used in a cron job that periodically checks directories for new files and encodes them without user intervention.
Main features:
- Encoding of single files
- Optional specification of a/v bitrates
- Recursively encode all files in a directory
- Generating a podcast.xml for convenient use in iTunes
Options:
--version show programs version number and exit
-h, --help show this help message and exit
-R, --recursive Process directories recusively
-f, --force Force re-encode existing iPod videos
-t, --test Only encode first 10 seconds, to produce test videos
-e EXTENSIONS, --extensions=EXTENSIONS
Comma separated list of input extensions. Default: avi
-i IPODEXT, --ipodext=IPODEXT
iPod extension. Default: .ipod.mp4
-b VIDEO_RATE, --video-rate=VIDEO_RATE
Video bit rate, in kbps (default: 1024)
-a AUDIO_RATE, --audio-rate=AUDIO_RATE
Audio bit rate, in kbps (128)
-W WIDTH, --width=WIDTH
Video width, in pixels (default: 320)
-H HEIGHT, --height=HEIGHT
Video height, in pixels (default: 240)
-P, --pretend Do not really encode, just print out the ffmpeg
commands which would be executed
-v, --verbose Enable verbose output
Podcast options:
-p, --podcast Generate a podcast.xml file for each directory.
--podcast-documentroot=PODCAST_DOCUMENTROOT
Podcast document root; eg. /var/data/Movies/
--podcast-baseurl=PODCAST_BASEURL
Podcast base URL; eg. http://localhost/
Enhancements:
- Only uses the -e option for processing directories.
- The default ipod extension is now _ipod.mp4 for Windows compatibility.
- The README file has been extended with information on the .ipod-encoder settings file.
- The program no longer crashes when HOME is not set on Windows.
- --width and --height parameters have been added.
<<lessIt features recursive encoding of all files in a directory, and generating a podcast.xml file for convenient use in iTunes.
It can be used in a cron job that periodically checks directories for new files and encodes them without user intervention.
Main features:
- Encoding of single files
- Optional specification of a/v bitrates
- Recursively encode all files in a directory
- Generating a podcast.xml for convenient use in iTunes
Options:
--version show programs version number and exit
-h, --help show this help message and exit
-R, --recursive Process directories recusively
-f, --force Force re-encode existing iPod videos
-t, --test Only encode first 10 seconds, to produce test videos
-e EXTENSIONS, --extensions=EXTENSIONS
Comma separated list of input extensions. Default: avi
-i IPODEXT, --ipodext=IPODEXT
iPod extension. Default: .ipod.mp4
-b VIDEO_RATE, --video-rate=VIDEO_RATE
Video bit rate, in kbps (default: 1024)
-a AUDIO_RATE, --audio-rate=AUDIO_RATE
Audio bit rate, in kbps (128)
-W WIDTH, --width=WIDTH
Video width, in pixels (default: 320)
-H HEIGHT, --height=HEIGHT
Video height, in pixels (default: 240)
-P, --pretend Do not really encode, just print out the ffmpeg
commands which would be executed
-v, --verbose Enable verbose output
Podcast options:
-p, --podcast Generate a podcast.xml file for each directory.
--podcast-documentroot=PODCAST_DOCUMENTROOT
Podcast document root; eg. /var/data/Movies/
--podcast-baseurl=PODCAST_BASEURL
Podcast base URL; eg. http://localhost/
Enhancements:
- Only uses the -e option for processing directories.
- The default ipod extension is now _ipod.mp4 for Windows compatibility.
- The README file has been extended with information on the .ipod-encoder settings file.
- The program no longer crashes when HOME is not set on Windows.
- --width and --height parameters have been added.
Download (0.010MB)
Added: 2006-01-20 License: GPL (GNU General Public License) Price:
1379 downloads
XML::IODEF 0.06
XML::IODEF is a Perl module for building/parsing IODEF messages. more>>
XML::IODEF is a Perl module for building/parsing IODEF messages.
QUICK START
Below is an example of an Incident IODEF message.
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE IODEF-Message PUBLIC "-//IETF//DTD RFC XXXX IODEF v1.0//EN" "IODEF-Document.dtd">
< IODEF-Document>
< Incident purpose="handling">
< IncidentID>
#12345
< /IncidentID>
< AdditionalData meaning="data2" type="string">value2< /AdditionalData>
< AdditionalData meaning="data1" type="string">value1< /AdditionalData>
< /Incident>
< /IODEF-Document>
The previous IODEF message can be built with the following code snipset:
use XML::IODEF;
my $iodef = new XML::IODEF();
$iodef->add("Incidentpurpose", "handling");
$iodef->add("IncidentAdditionalData", "value1", "data1");
$iodef->add("IncidentAdditionalData", "value2", "data2");
$iodef->add("IncidentIncidentID", "#12345");
print $iodef->out();
To automatically insert an the ReportTime class to the current time, add the 2 lines:
$iodef->create_time();
and you will get (for example):
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE IODEF-Message PUBLIC "-//IETF//DTD RFC XXXX IODEF v1.0//EN" "IODEF-Document.dtd">
< IODEF-Document>
< Incident purpose="handling">
< IncidentID>
#12345
< /IncidentID>
< IncidentData>
< ReportTime ntpstamp="0xc28859cf.0x0">2003-06-04-T11:43:11Z">2003-06-04-T11:43:11Z< /ReportTime>
< AdditionalData meaning="data2" type="string">value2
< AdditionalData meaning="data1" type="string">value1
< /Incident>
< /IODEF-Document>
<<lessQUICK START
Below is an example of an Incident IODEF message.
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE IODEF-Message PUBLIC "-//IETF//DTD RFC XXXX IODEF v1.0//EN" "IODEF-Document.dtd">
< IODEF-Document>
< Incident purpose="handling">
< IncidentID>
#12345
< /IncidentID>
< AdditionalData meaning="data2" type="string">value2< /AdditionalData>
< AdditionalData meaning="data1" type="string">value1< /AdditionalData>
< /Incident>
< /IODEF-Document>
The previous IODEF message can be built with the following code snipset:
use XML::IODEF;
my $iodef = new XML::IODEF();
$iodef->add("Incidentpurpose", "handling");
$iodef->add("IncidentAdditionalData", "value1", "data1");
$iodef->add("IncidentAdditionalData", "value2", "data2");
$iodef->add("IncidentIncidentID", "#12345");
print $iodef->out();
To automatically insert an the ReportTime class to the current time, add the 2 lines:
$iodef->create_time();
and you will get (for example):
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE IODEF-Message PUBLIC "-//IETF//DTD RFC XXXX IODEF v1.0//EN" "IODEF-Document.dtd">
< IODEF-Document>
< Incident purpose="handling">
< IncidentID>
#12345
< /IncidentID>
< IncidentData>
< ReportTime ntpstamp="0xc28859cf.0x0">2003-06-04-T11:43:11Z">2003-06-04-T11:43:11Z< /ReportTime>
< AdditionalData meaning="data2" type="string">value2
< AdditionalData meaning="data1" type="string">value1
< /Incident>
< /IODEF-Document>
Download (0.025MB)
Added: 2006-08-30 License: Perl Artistic License Price:
1152 downloads
Parsifal XML Parser 1.0.0
Parsifal XML Parser is a validating XML 1.0 parser written in ANSI C. more>>
Parsifal is a validating XML 1.0 parser written in ANSI C. Parsifal API is based on SAX2.
Parsifal can be used for parsing XML based messages (such as REST and RSS) and for application specific data processing e.g. config files, data files etc. Parsifal can also be used for document-oriented processing (e.g. XHTML xhtml1-transitional.dtd) and for parsing modular documents because it is conforming XML 1.0 parser and it supports features like internal and external general entities, DTD parameter entities and default attributes etc. Parsifal is ideal for processing large data files and streams since its SAX based and consumes very little memory not to mention it is fast enough for most purposes cos its written in C.
Using Parsifal in place of large XML processing libraries (e.g. libxml, xerces) or even in the place of small Expat (which doesnt support DTD validation) can be justified for limited memory environments and in applications requiring bundled parser; because of its modular design parsifal can be easily compiled to support DTD validation or to perform only non-validating parsing etc. If you need higher level tools, for example dom/xpath processing, you should look for other libs of course.
Main features:
- PublicID legal chars arent fully checked
- XML Namespaces 1.0 duplicate URIs arent checked
- Allows some illegal placement for parameter entity references (see conformance test results)
- Validation of TokenizedType attributes (e.g. ID) are not yet implemented nor checking for existence of valid NOTATIONs etc.
- Doesnt check non-determinism of content models in validating mode
Supported XML encodings
- UTF-8
- ISO-8859-1
- US-ASCII
When compiled with GNU libiconv support:
- UTF-16, UCS-2, UTF-32, UCS-4
- EUC-JP
- SHIFT_JIS
- ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}
Enhancements:
- This release fixes GCC 4 issues and polishes the configuration script.
<<lessParsifal can be used for parsing XML based messages (such as REST and RSS) and for application specific data processing e.g. config files, data files etc. Parsifal can also be used for document-oriented processing (e.g. XHTML xhtml1-transitional.dtd) and for parsing modular documents because it is conforming XML 1.0 parser and it supports features like internal and external general entities, DTD parameter entities and default attributes etc. Parsifal is ideal for processing large data files and streams since its SAX based and consumes very little memory not to mention it is fast enough for most purposes cos its written in C.
Using Parsifal in place of large XML processing libraries (e.g. libxml, xerces) or even in the place of small Expat (which doesnt support DTD validation) can be justified for limited memory environments and in applications requiring bundled parser; because of its modular design parsifal can be easily compiled to support DTD validation or to perform only non-validating parsing etc. If you need higher level tools, for example dom/xpath processing, you should look for other libs of course.
Main features:
- PublicID legal chars arent fully checked
- XML Namespaces 1.0 duplicate URIs arent checked
- Allows some illegal placement for parameter entity references (see conformance test results)
- Validation of TokenizedType attributes (e.g. ID) are not yet implemented nor checking for existence of valid NOTATIONs etc.
- Doesnt check non-determinism of content models in validating mode
Supported XML encodings
- UTF-8
- ISO-8859-1
- US-ASCII
When compiled with GNU libiconv support:
- UTF-16, UCS-2, UTF-32, UCS-4
- EUC-JP
- SHIFT_JIS
- ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}
Enhancements:
- This release fixes GCC 4 issues and polishes the configuration script.
Download (0.74MB)
Added: 2005-11-03 License: GPL (GNU General Public License) Price:
1455 downloads
Svnmailer 1.0.8
Svnmailer is a tool to post subversion repository commit information by mail, news or XML (to a CIA tracker). more>>
Svnmailer is a tool to post subversion repository commit information by mail, news or XML (to a CIA tracker).
The svnmailer package is derived from the script mailer.py distributed with subversion. Svnmailer arose from the idea to add some features to the original mailer script.
But Ive found the script not as extensible as it could be, so the svnmailer package was redeveloped from scratch with clearer design and extensibility in mind.
Now there are additional features like property diffs, MIME encoding, configurable handling of huge mails and news postings, subject templates, consistent unicode handling and even a better extensible command line.
Enhancements:
- This release enables the possibility to send mails as BCC and allows cia_rpc_server to be configured per notification group.
<<lessThe svnmailer package is derived from the script mailer.py distributed with subversion. Svnmailer arose from the idea to add some features to the original mailer script.
But Ive found the script not as extensible as it could be, so the svnmailer package was redeveloped from scratch with clearer design and extensibility in mind.
Now there are additional features like property diffs, MIME encoding, configurable handling of huge mails and news postings, subject templates, consistent unicode handling and even a better extensible command line.
Enhancements:
- This release enables the possibility to send mails as BCC and allows cia_rpc_server to be configured per notification group.
Download (0.38MB)
Added: 2006-04-17 License: The Apache License 2.0 Price:
1285 downloads
XML::LibXML::DOM 1.58
XML::LibXML::DOM is a XML::LibXML DOM Implementation. more>>
XML::LibXML::DOM is a XML::LibXML DOM Implementation.
XML::LibXML provides an lightwight interface to modify a node of the document tree generated by the XML::LibXML parser. This interface follows as far as possible the DOM Level 3 specification. Additionally to the specified functions the XML::LibXML supports some functions that are more handy to use in the perl environment.
One also has to remember, that XML::LibXML is an interface to libxml2 nodes which actually reside on the C-Level of XML::LibXML. This means each node is a reference to a structure different than a perl hash or array. The only way to access these structures values is through the DOM interface provided by XML::LibXML. This also means, that one cant simply inherit a XML::LibXML node and add new member variables as they were hash keys.
The DOM interface of XML::LibXML does not intend to implement a full DOM interface as it is done by XML::GDOME and used for full featured application. Moreover, it offers an simple way to build or modify documents that are created by XML::LibXMLs parser.
Another target of the XML::LibXML interface is to make the interfaces of libxml2 available to the perl community. This includes also some workarounds to some features where libxml2 assumes more control over the C-Level that most perl users dont have.
One of the most important parts of the XML::LibXML DOM interface is, that the interfaces try do follow the DOM Level 3 specification rather strictly. This means the interface functions are named as the DOM specification says and not what widespread Java interfaces claim to be standard. Although there are several functions that have only a singular interface that conforms to the DOM spec XML::LibXML provides an additional Java style alias interface.
Also there are some function interfaces left over from early stages of XML::LibXML for compatibility reasons. These interfaces are for compatibility reasons only. They might disappear in one of the future versions of XML::LibXML, so a user is requested to switch over to the official functions.
More recent versions of perl (e.g. 5.6.1 or higher) support special flags to disinguish between UTF8 and so called binary data. XML::LibXML provides for these versions functionality to make efficient use of these flags: If a document has set an encoding other than UTF8 all strings that are not already in UTF8 are implicitly encoded from the document encoding to UTF8. On output these strings are commonly returned as UTF8 unless a user does request explicitly the original (aka. document) encoding.
Older version of perl (such as 5.00503 or less) do not support these flags. If XML::LibXML is build for these versions, all strings have to get encoded to UTF8 manualy before they are passed to any DOM functions.
NOTE: XML::LibXMLs magic encoding may not work on all plattforms. Some platforms are known to have a broken iconv(), which is partly used by libxml2. To test if your platform works correctly with your language encoding, build a simple document in the particular encoding and try to parse it with XML::LibXML. If your document gets parsed with out causing any segmentation faults, bus errors or whatever your OS throws. An example for such a test can be found in test 19encoding.t of the distribution.
Namespaces and XML::LibXMLs DOM implementation
XML::LibXMLs DOM implementation follows the DOM implementation of libxml2. This is important to know if namespaces are used. Namespaces cannot be declared on an document node. This is basicly because XPath doesnt know about document nodes. Therefore namespaces have to be declared on element nodes.
This can happen explicitly by using XML::LibXML:Elements setNamespace() function or more or less implicitly by using XML::LibXML::Documents createElementNS() or createAttributeNS() function. If the a namespace is not declared on the documentElement, the namespace will be localy declared for the newly created node. In case of Attributes this may look a bit confusing, since these nodes cannot have namespace declarations itself. In this case the namespace in internally applied to the attribute and later declared on the node the attribute is appended to.
<<lessXML::LibXML provides an lightwight interface to modify a node of the document tree generated by the XML::LibXML parser. This interface follows as far as possible the DOM Level 3 specification. Additionally to the specified functions the XML::LibXML supports some functions that are more handy to use in the perl environment.
One also has to remember, that XML::LibXML is an interface to libxml2 nodes which actually reside on the C-Level of XML::LibXML. This means each node is a reference to a structure different than a perl hash or array. The only way to access these structures values is through the DOM interface provided by XML::LibXML. This also means, that one cant simply inherit a XML::LibXML node and add new member variables as they were hash keys.
The DOM interface of XML::LibXML does not intend to implement a full DOM interface as it is done by XML::GDOME and used for full featured application. Moreover, it offers an simple way to build or modify documents that are created by XML::LibXMLs parser.
Another target of the XML::LibXML interface is to make the interfaces of libxml2 available to the perl community. This includes also some workarounds to some features where libxml2 assumes more control over the C-Level that most perl users dont have.
One of the most important parts of the XML::LibXML DOM interface is, that the interfaces try do follow the DOM Level 3 specification rather strictly. This means the interface functions are named as the DOM specification says and not what widespread Java interfaces claim to be standard. Although there are several functions that have only a singular interface that conforms to the DOM spec XML::LibXML provides an additional Java style alias interface.
Also there are some function interfaces left over from early stages of XML::LibXML for compatibility reasons. These interfaces are for compatibility reasons only. They might disappear in one of the future versions of XML::LibXML, so a user is requested to switch over to the official functions.
More recent versions of perl (e.g. 5.6.1 or higher) support special flags to disinguish between UTF8 and so called binary data. XML::LibXML provides for these versions functionality to make efficient use of these flags: If a document has set an encoding other than UTF8 all strings that are not already in UTF8 are implicitly encoded from the document encoding to UTF8. On output these strings are commonly returned as UTF8 unless a user does request explicitly the original (aka. document) encoding.
Older version of perl (such as 5.00503 or less) do not support these flags. If XML::LibXML is build for these versions, all strings have to get encoded to UTF8 manualy before they are passed to any DOM functions.
NOTE: XML::LibXMLs magic encoding may not work on all plattforms. Some platforms are known to have a broken iconv(), which is partly used by libxml2. To test if your platform works correctly with your language encoding, build a simple document in the particular encoding and try to parse it with XML::LibXML. If your document gets parsed with out causing any segmentation faults, bus errors or whatever your OS throws. An example for such a test can be found in test 19encoding.t of the distribution.
Namespaces and XML::LibXMLs DOM implementation
XML::LibXMLs DOM implementation follows the DOM implementation of libxml2. This is important to know if namespaces are used. Namespaces cannot be declared on an document node. This is basicly because XPath doesnt know about document nodes. Therefore namespaces have to be declared on element nodes.
This can happen explicitly by using XML::LibXML:Elements setNamespace() function or more or less implicitly by using XML::LibXML::Documents createElementNS() or createAttributeNS() function. If the a namespace is not declared on the documentElement, the namespace will be localy declared for the newly created node. In case of Attributes this may look a bit confusing, since these nodes cannot have namespace declarations itself. In this case the namespace in internally applied to the attribute and later declared on the node the attribute is appended to.
Download (0.16MB)
Added: 2006-07-17 License: GPL (GNU General Public License) Price:
1198 downloads
ETTERLOG 1.0
Etterlog is the log analyzer for logfiles created by ettercap. more>>
ETTERLOG is a utility for Network Lan (SWITCH) for file .ECI and .ECP.
(Ettercap program).
Etterlog is the log analyzer for logfiles created by ettercap. It can handle both compressed (created with -Lc) or uncompressed logfiles. With this tool you can manipulate binary files as you like and you can print data in different ways all the times you want (in contrast with the previous logging system which was used to dump in a single static manner).
You will be able to dump traffic from only one connection of your choice, from only one or more hosts, print data in hex, ascii, binary etc... TIP: All unuseful messages are printed to stderr, so you can save the output from etterlog with the following command:
etterlog [options] logfile > outfile Thus you can dump for example a binary file from an ftp connection if you print the data in binary mode, without headers and selecting only the ftp server as the source of the communication.
GENERAL OPTIONS
-a, --analyze Analyze a log file and display some interesting statistics.
-c, --connections Parse the log file and print a table of unique connections (port to port). This option can be used only on LOG_PACKET logfiles. On LOG_INFO logfiles it is useless. TIP: you can search for a particular host by using the following command: etterlog -c logfile.ecp | grep 10.0.0.1
-f, --filter < TARGET > Print only packets coming from or going to TARGET. The TARGET specification is the same as in ettercap.
TARGET is in the form MAC/IPs/PORTs. Omitting one or more of its parts will be equivalent to set them to ANY. If the log type is LOG_INFO the target is used to display hosts matching the mac, ip and having the specified port(s) open. For example the target //80 will display only information about hosts with a running web server.
-r, --reverse Reverse the matching in the TARGET selection. It means not(TARGET). All but the selected TARGET.
-t, --proto < PROTO > Sniff only PROTO packets (default is TCP + UDP). This option is only useful in "simple" mode. If you start ettercap in interactive mode both TCP and UDP are sniffed.
PROTO can be "tcp", "udp" or "all" for both.
-F, --filcon < CONNECTION > Print packets belonging only to this CONNECTION.
CONNECTION is in the form PROTO:SOURCE:DEST. SOURCE and DEST are in the form IP:PORT. example: etterlog -F TCP:10.0.0.23:3318:198.182.196.56:80
-s, --only-source Display only packets that are sent by the source of the selected CONNECTION. This option makes sense only in conjunction with the -F option. TIP: if you want to save a file transferred in an HTTP or FTP connection, you can use the following command: etterlog -B -s -n -F TCP:10.0.0.1:20:10.0.0.2:35426 logfile.ecp > example.tar.gz
-d, --only-dest Same as --only-source but it filters on the destination host.
-n, --no-headers Do not print the header of each packet. This option is useful if you want to save a file in binary format (-B option). Without the headers you can redirect the output to a file and you will get the original stream. NOTE: the time stamp in the header is in the form: Thu Mar 27 23:03:31 2003 [169396], the value in the square brackets is expressed in microseconds
-m, --show-mac In the headers show also the mac addresses corresponding to the ip addresses.
-k, --color If used in conjunction with -F it displays the source and dest of the connection using different colors. If used with a LOG_INFO file it prints LAN hosts in green, REMOTE hosts in blue and GATEWAYS in red.
-l, --only-local Used displaying an INFO file, it displays information only about local hosts.
-L, --only-remote Used displaying an INFO file, it displays information only about remote hosts.
SEARCH OPTIONS
-e, --regex < REGEX > Display only packets matching the regex < REGEX >.
If this option is used agains a LOG_PACKET logfile, the regex is executed on the payload of the packet. If the type is LOG_INFO, the regex is executed on all the fields of the host profile (OS, banners, service and ethernet adapter).
NOTE: the regex is compiled with the REG_ICASE flag (case insensitive).
-u, --user < USER > Display information about this user. The search is performed over all the user/pass couples collected across all hosts.
-p, --passwords Print only the collected account information for each host. This prevents the huge profile output. It can be used in conjunction with the -u option to filter the users. An asterisk * used in front of an account represents a failed login attempt.
-i, --show-client Show the client ip address when displaying the collected users and passwords. It may be useful when ACLs are in place.
-I, --client < IP > Show passwords only coming from a specific < IP >. This is useful to view all the usernames and passwords of a client.
EDITING OPTIONS
-C, --concat Use this option to concatenate two (or more) files into one single file. This is useful if you have collected ettercap log files from multiple sources and want to have an unified report. The output file must be specified with the -o option and the input files are listed as normal arguments. example:
etterlog -C -o outfile input1 input2 input3
-o, --outfile < FILE > specifies the output file for a concatenation.
VISUALIZATION METHOD
-B, --binary Print data as they are, in binary form. Useful to dump binary data to a file (as described above).
-X, --hex Print the packets in hex format. example: the string "HTTP/1.1 304 Not Modified" becomes: 0000: 4854 5450 2f31 2e31 2033 3034 204e 6f74 HTTP/1.1 304 Not
0010: 204d 6f64 6966 6965 64 Modified
-A, --ascii Print only "printable" characters, the others are displayed as dots .
-T, --text Print only the "printable" characters and skip the others.
-E, --ebcdic Convert an EBCDIC text to ASCII.
-H, --html Strip all html tags from the text. A tag is every string between < and >. example: < title >This is the title< /title >, but the following < string > will not be displayed. This is the title, but the following will not be displayed.
-U, --utf8 < encoding > Print the packets in UTF-8 format. The < encoding > parameter specifies the encoding to be used while performing the conversion. Use the `iconv --list` command to obtain a list of all supported encodings.
-Z, --zero Print always the void string. i.e. print only header information and no packet content will be printed.
-x, --xml Print the host information in xml form, so you can parse it with your favourite program. The DTD associated with the xml output is in share/etterlog.dtd
STANDARD OPTIONS
-v, --version Print the version and exit.
-h, --help Print the help screen with a short summary of the available options.
EXAMPLES
Here are some examples of using etterlog.
etterlog -k -l dump.eci
Displays information about local hosts in different colors.
etterlog -X dump.ecp
Prints packets in HEX mode with full headers.
etterlog -c dump.ecp
Displays the list of connections logged in the file.
etterlog -Akn -F TCP:10.0.0.1:13423:213.203.143.52:6666 dump.ecp
Displays the IRC traffic made by 10.0.0.1 in ASCII mode, without headers information and in colored mode.
etterlog -H -t tcp -f //80 dump.ecp
Dumps all HTTP traffic and strips html tags.
etterlog -Z -r -f /10.0.0.2/22 dump.ecp
Displays only the headers of all connections except ssh on host 10.0.0.2
etterlog -A -e user -f //110 dump.ecp
Displays only POP packets containing the user regexp (case insensitive).
etterlog -u root dump.eci
Displays information about all the accounts of the user root.
etterlog -e Apache dump.eci
Displays information about all the hosts running Apache.
etterlog -e Linux dump.eci
Displays information about all the hosts with the Linux operating system.
etterlog -t tcp -f //110 dump.eci
Displays information about all the hosts with the tcp port 110 open.
etterlog -t udp dump.eci
Displays information about all the hosts with at least one UDP port open.
etterlog -B -s -n -F TCP:10.0.0.1:20:10.0.0.2:35426 logfile.ecp > example.tar.gz
Dumps in binary form the data sent by 10.0.0.1 over the data port of FTP. Since the headers are omitted, you will get the file as it was.
<<less(Ettercap program).
Etterlog is the log analyzer for logfiles created by ettercap. It can handle both compressed (created with -Lc) or uncompressed logfiles. With this tool you can manipulate binary files as you like and you can print data in different ways all the times you want (in contrast with the previous logging system which was used to dump in a single static manner).
You will be able to dump traffic from only one connection of your choice, from only one or more hosts, print data in hex, ascii, binary etc... TIP: All unuseful messages are printed to stderr, so you can save the output from etterlog with the following command:
etterlog [options] logfile > outfile Thus you can dump for example a binary file from an ftp connection if you print the data in binary mode, without headers and selecting only the ftp server as the source of the communication.
GENERAL OPTIONS
-a, --analyze Analyze a log file and display some interesting statistics.
-c, --connections Parse the log file and print a table of unique connections (port to port). This option can be used only on LOG_PACKET logfiles. On LOG_INFO logfiles it is useless. TIP: you can search for a particular host by using the following command: etterlog -c logfile.ecp | grep 10.0.0.1
-f, --filter < TARGET > Print only packets coming from or going to TARGET. The TARGET specification is the same as in ettercap.
TARGET is in the form MAC/IPs/PORTs. Omitting one or more of its parts will be equivalent to set them to ANY. If the log type is LOG_INFO the target is used to display hosts matching the mac, ip and having the specified port(s) open. For example the target //80 will display only information about hosts with a running web server.
-r, --reverse Reverse the matching in the TARGET selection. It means not(TARGET). All but the selected TARGET.
-t, --proto < PROTO > Sniff only PROTO packets (default is TCP + UDP). This option is only useful in "simple" mode. If you start ettercap in interactive mode both TCP and UDP are sniffed.
PROTO can be "tcp", "udp" or "all" for both.
-F, --filcon < CONNECTION > Print packets belonging only to this CONNECTION.
CONNECTION is in the form PROTO:SOURCE:DEST. SOURCE and DEST are in the form IP:PORT. example: etterlog -F TCP:10.0.0.23:3318:198.182.196.56:80
-s, --only-source Display only packets that are sent by the source of the selected CONNECTION. This option makes sense only in conjunction with the -F option. TIP: if you want to save a file transferred in an HTTP or FTP connection, you can use the following command: etterlog -B -s -n -F TCP:10.0.0.1:20:10.0.0.2:35426 logfile.ecp > example.tar.gz
-d, --only-dest Same as --only-source but it filters on the destination host.
-n, --no-headers Do not print the header of each packet. This option is useful if you want to save a file in binary format (-B option). Without the headers you can redirect the output to a file and you will get the original stream. NOTE: the time stamp in the header is in the form: Thu Mar 27 23:03:31 2003 [169396], the value in the square brackets is expressed in microseconds
-m, --show-mac In the headers show also the mac addresses corresponding to the ip addresses.
-k, --color If used in conjunction with -F it displays the source and dest of the connection using different colors. If used with a LOG_INFO file it prints LAN hosts in green, REMOTE hosts in blue and GATEWAYS in red.
-l, --only-local Used displaying an INFO file, it displays information only about local hosts.
-L, --only-remote Used displaying an INFO file, it displays information only about remote hosts.
SEARCH OPTIONS
-e, --regex < REGEX > Display only packets matching the regex < REGEX >.
If this option is used agains a LOG_PACKET logfile, the regex is executed on the payload of the packet. If the type is LOG_INFO, the regex is executed on all the fields of the host profile (OS, banners, service and ethernet adapter).
NOTE: the regex is compiled with the REG_ICASE flag (case insensitive).
-u, --user < USER > Display information about this user. The search is performed over all the user/pass couples collected across all hosts.
-p, --passwords Print only the collected account information for each host. This prevents the huge profile output. It can be used in conjunction with the -u option to filter the users. An asterisk * used in front of an account represents a failed login attempt.
-i, --show-client Show the client ip address when displaying the collected users and passwords. It may be useful when ACLs are in place.
-I, --client < IP > Show passwords only coming from a specific < IP >. This is useful to view all the usernames and passwords of a client.
EDITING OPTIONS
-C, --concat Use this option to concatenate two (or more) files into one single file. This is useful if you have collected ettercap log files from multiple sources and want to have an unified report. The output file must be specified with the -o option and the input files are listed as normal arguments. example:
etterlog -C -o outfile input1 input2 input3
-o, --outfile < FILE > specifies the output file for a concatenation.
VISUALIZATION METHOD
-B, --binary Print data as they are, in binary form. Useful to dump binary data to a file (as described above).
-X, --hex Print the packets in hex format. example: the string "HTTP/1.1 304 Not Modified" becomes: 0000: 4854 5450 2f31 2e31 2033 3034 204e 6f74 HTTP/1.1 304 Not
0010: 204d 6f64 6966 6965 64 Modified
-A, --ascii Print only "printable" characters, the others are displayed as dots .
-T, --text Print only the "printable" characters and skip the others.
-E, --ebcdic Convert an EBCDIC text to ASCII.
-H, --html Strip all html tags from the text. A tag is every string between < and >. example: < title >This is the title< /title >, but the following < string > will not be displayed. This is the title, but the following will not be displayed.
-U, --utf8 < encoding > Print the packets in UTF-8 format. The < encoding > parameter specifies the encoding to be used while performing the conversion. Use the `iconv --list` command to obtain a list of all supported encodings.
-Z, --zero Print always the void string. i.e. print only header information and no packet content will be printed.
-x, --xml Print the host information in xml form, so you can parse it with your favourite program. The DTD associated with the xml output is in share/etterlog.dtd
STANDARD OPTIONS
-v, --version Print the version and exit.
-h, --help Print the help screen with a short summary of the available options.
EXAMPLES
Here are some examples of using etterlog.
etterlog -k -l dump.eci
Displays information about local hosts in different colors.
etterlog -X dump.ecp
Prints packets in HEX mode with full headers.
etterlog -c dump.ecp
Displays the list of connections logged in the file.
etterlog -Akn -F TCP:10.0.0.1:13423:213.203.143.52:6666 dump.ecp
Displays the IRC traffic made by 10.0.0.1 in ASCII mode, without headers information and in colored mode.
etterlog -H -t tcp -f //80 dump.ecp
Dumps all HTTP traffic and strips html tags.
etterlog -Z -r -f /10.0.0.2/22 dump.ecp
Displays only the headers of all connections except ssh on host 10.0.0.2
etterlog -A -e user -f //110 dump.ecp
Displays only POP packets containing the user regexp (case insensitive).
etterlog -u root dump.eci
Displays information about all the accounts of the user root.
etterlog -e Apache dump.eci
Displays information about all the hosts running Apache.
etterlog -e Linux dump.eci
Displays information about all the hosts with the Linux operating system.
etterlog -t tcp -f //110 dump.eci
Displays information about all the hosts with the tcp port 110 open.
etterlog -t udp dump.eci
Displays information about all the hosts with at least one UDP port open.
etterlog -B -s -n -F TCP:10.0.0.1:20:10.0.0.2:35426 logfile.ecp > example.tar.gz
Dumps in binary form the data sent by 10.0.0.1 over the data port of FTP. Since the headers are omitted, you will get the file as it was.
Download (0.11MB)
Added: 2006-02-01 License: GPL (GNU General Public License) Price:
1367 downloads
XML::IDMEF 0.11
XML::IDMEF is a module for building/parsing IDMEF messages. more>>
XML::IDMEF is a module for building/parsing IDMEF messages.
QUICK START
Below is an example of an Alert IDMEF message.
< ?xml version="1.0" encoding="UTF-8"? >
< !DOCTYPE IDMEF-Message PUBLIC "-//IETF//DTD RFC XXXX IDMEF v1.0//EN" "idmef-message.dtd" >
< IDMEF-Message >
< Alert >
< Analyzer model="myids"/ >
< Target >
< Node >
< name >mynode< /name >
< /Node >
< /Target >
< AdditionalData meaning="data2" type="string" >value2< /AdditionalData >
< AdditionalData meaning="data1" type="string" >value1< /AdditionalData >
< /Alert >
< /IDMEF-Message >
The previous IDMEF message can be built with the following code snipset:
use XML::IDMEF;
my $idmef = new XML::IDMEF();
$idmef->add("AlertTargetNodename", "mynode");
$idmef->add("AlertAdditionalData", "value1", "data1");
$idmef->add("AlertAdditionalData", "value2", "data2");
$idmef->add("AlertAnalyzermodel", "myids");
print $idmef->out();
To automatically insert an Alert ident tag and set the CreateTime class to the current time, add the 2 lines:
$idmef->create_ident();
$idmef->create_time();
and you will get (for example):
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE IDMEF-Message PUBLIC "-//IETF//DTD RFC XXXX IDMEF v1.0//EN" "idmef-message.dtd">
< IDMEF-Message>
< Alert ident="00003EDDDB4F10115110000780D0002">
< Analyzer model="myids"/>
< CreateTime ntpstamp="0xc28859cf.0x0">2003-06-04-T11:43:11Z
< Target>
< Node>
< name>mynode< /name>
< /Node>
< /Target>
< AdditionalData meaning="data2" type="string">value2
< AdditionalData meaning="data1" type="string">value1
< /Alert>
< /IDMEF-Message>
<<lessQUICK START
Below is an example of an Alert IDMEF message.
< ?xml version="1.0" encoding="UTF-8"? >
< !DOCTYPE IDMEF-Message PUBLIC "-//IETF//DTD RFC XXXX IDMEF v1.0//EN" "idmef-message.dtd" >
< IDMEF-Message >
< Alert >
< Analyzer model="myids"/ >
< Target >
< Node >
< name >mynode< /name >
< /Node >
< /Target >
< AdditionalData meaning="data2" type="string" >value2< /AdditionalData >
< AdditionalData meaning="data1" type="string" >value1< /AdditionalData >
< /Alert >
< /IDMEF-Message >
The previous IDMEF message can be built with the following code snipset:
use XML::IDMEF;
my $idmef = new XML::IDMEF();
$idmef->add("AlertTargetNodename", "mynode");
$idmef->add("AlertAdditionalData", "value1", "data1");
$idmef->add("AlertAdditionalData", "value2", "data2");
$idmef->add("AlertAnalyzermodel", "myids");
print $idmef->out();
To automatically insert an Alert ident tag and set the CreateTime class to the current time, add the 2 lines:
$idmef->create_ident();
$idmef->create_time();
and you will get (for example):
< ?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE IDMEF-Message PUBLIC "-//IETF//DTD RFC XXXX IDMEF v1.0//EN" "idmef-message.dtd">
< IDMEF-Message>
< Alert ident="00003EDDDB4F10115110000780D0002">
< Analyzer model="myids"/>
< CreateTime ntpstamp="0xc28859cf.0x0">2003-06-04-T11:43:11Z
< Target>
< Node>
< name>mynode< /name>
< /Node>
< /Target>
< AdditionalData meaning="data2" type="string">value2
< AdditionalData meaning="data1" type="string">value1
< /Alert>
< /IDMEF-Message>
Download (0.025MB)
Added: 2006-08-30 License: Perl Artistic License Price:
1151 downloads
Encode::PerlIO 5.8.1
Encode::PerlIO is a detailed document on Encode and PerlIO. more>>
Encode::PerlIO is a detailed document on Encode and PerlIO.
Overview
It is very common to want to do encoding transformations when reading or writing files, network connections, pipes etc. If Perl is configured to use the new perlio IO system then Encode provides a "layer" (see PerlIO) which can transform data as it is read or written.
Here is how the blind poet would modernise the encoding:
use Encode;
open(my $iliad,:utf8,iliad.utf8);
my @epic = < $iliad >;
print $utf8 @epic;
close($utf8);
close($illiad);
In addition, the new IO system can also be configured to read/write UTF-8 encoded characters (as noted above, this is efficient):
open(my $fh,>:utf8,anything);
print $fh "Any x{0021} string N{SMILEY FACE}n";
Either of the above forms of "layer" specifications can be made the default for a lexical scope with the use open ... pragma. See open.
Once a handle is open, its layers can be altered using binmode.
Without any such configuration, or if Perl itself is built using the systems own IO, then write operations assume that the file handle accepts only bytes and will die if a character larger than 255 is written to the handle. When reading, each octet from the handle becomes a byte-in-a-character. Note that this default is the same behaviour as bytes-only languages (including Perl before v5.6) would have, and is sufficient to handle native 8-bit encodings e.g. iso-8859-1, EBCDIC etc. and any legacy mechanisms for handling other encodings and binary data.
In other cases, it is the programs responsibility to transform characters into bytes using the API above before doing writes, and to transform the bytes read from a handle into characters before doing "character operations" (e.g. lc, /W+/, ...).
You can also use PerlIO to convert larger amounts of data you dont want to bring into memory. For example, to convert between ISO-8859-1 (Latin 1) and UTF-8 (or UTF-EBCDIC in EBCDIC machines):
open(F, ":utf8", "data.utf") or die $!;
while (< F >) { print G }
# Could also do "print G < F >" but that would pull
# the whole file into memory just to write it out again.
More examples:
open(my $f, ":encoding(iso-8859-2)")
open(my $h, ">:encoding(latin9)") # iso-8859-15
<<lessOverview
It is very common to want to do encoding transformations when reading or writing files, network connections, pipes etc. If Perl is configured to use the new perlio IO system then Encode provides a "layer" (see PerlIO) which can transform data as it is read or written.
Here is how the blind poet would modernise the encoding:
use Encode;
open(my $iliad,:utf8,iliad.utf8);
my @epic = < $iliad >;
print $utf8 @epic;
close($utf8);
close($illiad);
In addition, the new IO system can also be configured to read/write UTF-8 encoded characters (as noted above, this is efficient):
open(my $fh,>:utf8,anything);
print $fh "Any x{0021} string N{SMILEY FACE}n";
Either of the above forms of "layer" specifications can be made the default for a lexical scope with the use open ... pragma. See open.
Once a handle is open, its layers can be altered using binmode.
Without any such configuration, or if Perl itself is built using the systems own IO, then write operations assume that the file handle accepts only bytes and will die if a character larger than 255 is written to the handle. When reading, each octet from the handle becomes a byte-in-a-character. Note that this default is the same behaviour as bytes-only languages (including Perl before v5.6) would have, and is sufficient to handle native 8-bit encodings e.g. iso-8859-1, EBCDIC etc. and any legacy mechanisms for handling other encodings and binary data.
In other cases, it is the programs responsibility to transform characters into bytes using the API above before doing writes, and to transform the bytes read from a handle into characters before doing "character operations" (e.g. lc, /W+/, ...).
You can also use PerlIO to convert larger amounts of data you dont want to bring into memory. For example, to convert between ISO-8859-1 (Latin 1) and UTF-8 (or UTF-EBCDIC in EBCDIC machines):
open(F, ":utf8", "data.utf") or die $!;
while (< F >) { print G }
# Could also do "print G < F >" but that would pull
# the whole file into memory just to write it out again.
More examples:
open(my $f, ":encoding(iso-8859-2)")
open(my $h, ">:encoding(latin9)") # iso-8859-15
Download (11.3MB)
Added: 2007-08-07 License: Perl Artistic License Price:
809 downloads
libunicode 0.7
libunicode is a library of unicode string functions and charset converters. more>>
Libunicode offers low-level Unicode (UTF-16) text processing functionality,
which can be divided into three categories:
- Character handling
- String handling
- Charsets handling
Libunicode uses ISO/IEC 10646-defined UTF-16 encoding for storing and minipulating all character entities. It will supports other encoding standards (e.g., UTF-8, ISO 8859-x, etc.) for input and output only.
Libunicode bases, where applicable, on "Single Unix Specification, Version 2(R)" (susv2) as API and semantics reference. susv2 is the unification and superset of de jure POSIX and ANSI C (run-time library part) and de facto BSD standards. This means that, if you know standard character and string handling functions, you can readily use libunicode; and, if you have apllication using standard character/string processing facilities, you may with minimal troubles make it Unicode-aware.
Also, dont let word "Unix" in standard name confuse you. Susv2, as same as POSIX, is standard for *Open* operating systems, where MS Windows, MacOs, etc. fit. Such name was choosen by OpenGroup, maintainer of susv2, to unite and defend market sectors actively attacked by Microsoft with its "decommodizing" tactics. Libunicode is bright example of opposite approach, offering crossplatform portability and comptability for Unix and Win32 systems. (*)
(*) Opinions presented in the paragraph above are solely opinion of documentation author and should not be considered as reflecting real state of the things.
Libunicode defines new type, Uchar, which can handle any non-surrogate UTF-16 character without space overhead.
Library offer two APIs, one being precise remapping of susv2 functions, and one offering slightly higher-level API, with automatic memory management fully controlled by user.
Functions of 1st API (fully standard-compliant, the one you probably will use) uses u_ prefix, e.g. standard
char *strchr(const char *s, char c);
becomes
Uchar *u_strchr(const Uchar *s, Uchar c);
Functions of 2nd API use uni_ prefix. They are conceived to be used in special environments, for example, in Apache webserver modules. Most functions has completely identical u_ and uni_ implementation, but following have differring from standard argument structure and semantics:
uni_strcat
uni_strncat
uni_strdup
uni_strndup
uni_strcpy
uni_strncpy
You should consult library reference for their full description.
<<lesswhich can be divided into three categories:
- Character handling
- String handling
- Charsets handling
Libunicode uses ISO/IEC 10646-defined UTF-16 encoding for storing and minipulating all character entities. It will supports other encoding standards (e.g., UTF-8, ISO 8859-x, etc.) for input and output only.
Libunicode bases, where applicable, on "Single Unix Specification, Version 2(R)" (susv2) as API and semantics reference. susv2 is the unification and superset of de jure POSIX and ANSI C (run-time library part) and de facto BSD standards. This means that, if you know standard character and string handling functions, you can readily use libunicode; and, if you have apllication using standard character/string processing facilities, you may with minimal troubles make it Unicode-aware.
Also, dont let word "Unix" in standard name confuse you. Susv2, as same as POSIX, is standard for *Open* operating systems, where MS Windows, MacOs, etc. fit. Such name was choosen by OpenGroup, maintainer of susv2, to unite and defend market sectors actively attacked by Microsoft with its "decommodizing" tactics. Libunicode is bright example of opposite approach, offering crossplatform portability and comptability for Unix and Win32 systems. (*)
(*) Opinions presented in the paragraph above are solely opinion of documentation author and should not be considered as reflecting real state of the things.
Libunicode defines new type, Uchar, which can handle any non-surrogate UTF-16 character without space overhead.
Library offer two APIs, one being precise remapping of susv2 functions, and one offering slightly higher-level API, with automatic memory management fully controlled by user.
Functions of 1st API (fully standard-compliant, the one you probably will use) uses u_ prefix, e.g. standard
char *strchr(const char *s, char c);
becomes
Uchar *u_strchr(const Uchar *s, Uchar c);
Functions of 2nd API use uni_ prefix. They are conceived to be used in special environments, for example, in Apache webserver modules. Most functions has completely identical u_ and uni_ implementation, but following have differring from standard argument structure and semantics:
uni_strcat
uni_strncat
uni_strdup
uni_strndup
uni_strcpy
uni_strncpy
You should consult library reference for their full description.
Download (0.11MB)
Added: 2005-10-28 License: GPL (GNU General Public License) Price:
1458 downloads
MP3::Info 1.20
MP3::Info is a Perl module that can manipulate / fetch info from MP3 audio files. more>>
MP3::Info is a Perl module that can manipulate / fetch info from MP3 audio files.
SYNOPSIS
#!perl -w
use MP3::Info;
my $file = Pearls_Before_Swine.mp3;
set_mp3tag($file, Pearls Before Swine, q"77s",
Sticks and Stones, 1990,
q"(c) 1990 77s LTD.", rock & roll);
my $tag = get_mp3tag($file) or die "No TAG info";
$tag->{GENRE} = rock;
set_mp3tag($file, $tag);
my $info = get_mp3info($file);
printf "$file length is %d:%dn", $info->{MM}, $info->{SS};
my $mp3 = new MP3::Info $file;
$mp3->title(Perls Before Swine);
printf "$file length is %s, title is %sn",
$mp3->time, $mp3->title;
$mp3 = MP3::Info->new(FILE)
OOP interface to the rest of the module. The same keys available via get_mp3info and get_mp3tag are available via the returned object (using upper case or lower case; but note that all-caps "VERSION" will return the module version, not the MP3 version).
Passing a value to one of the methods will set the value for that tag in the MP3 file, if applicable.
use_mp3_utf8([STATUS])
Tells MP3::Info to (or not) return TAG info in UTF-8. TRUE is 1, FALSE is 0. Default is TRUE, if available.
Will only be able to turn it on if Encode is available. ID3v2 tags will be converted to UTF-8 according to the encoding specified in each tag; ID3v1 tags will be assumed Latin-1 and converted to UTF-8.
Function returns status (TRUE/FALSE). If no argument is supplied, or an unaccepted argument is supplied, function merely returns status.
This function is not exported by default, but may be exported with the :utf8 or :all export tag.
use_winamp_genres()
Puts WinAmp genres into @mp3_genres and %mp3_genres (adds 68 additional genres to the default list of 80). This is a separate function because these are non-standard genres, but they are included because they are widely used.
You can import the data structures with one of:
use MP3::Info qw(:genres);
use MP3::Info qw(:DEFAULT :genres);
use MP3::Info qw(:all);
remove_mp3tag (FILE [, VERSION, BUFFER])
Can remove ID3v1 or ID3v2 tags. VERSION should be 1 for ID3v1 (the default), 2 for ID3v2, and ALL for both.
For ID3v1, removes last 128 bytes from file if those last 128 bytes begin with the text TAG. File will be 128 bytes shorter.
For ID3v2, removes ID3v2 tag. Because an ID3v2 tag is at the beginning of the file, we rewrite the file after removing the tag data. The buffer for rewriting the file is 4MB. BUFFER (in bytes) ca change the buffer size.
Returns the number of bytes removed, or -1 if no tag removed, or undef if there is an error.
set_mp3tag (FILE, TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE [, TRACKNUM])
set_mp3tag (FILE, $HASHREF)
Adds/changes tag information in an MP3 audio file. Will clobber any existing information in file.
Fields are TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE. All fields have a 30-byte limit, except for YEAR, which has a four-byte limit, and GENRE, which is one byte in the file. The GENRE passed in the function is a case-insensitive text string representing a genre found in @mp3_genres.
Will accept either a list of values, or a hashref of the type returned by get_mp3tag.
If TRACKNUM is present (for ID3v1.1), then the COMMENT field can only be 28 bytes.
ID3v2 support may come eventually. Note that if you set a tag on a file with ID3v2, the set tag will be for ID3v1[.1] only, and if you call get_mp3tag on the file, it will show you the (unchanged) ID3v2 tags, unless you specify ID3v1.
get_mp3tag (FILE [, VERSION, RAW_V2])
Returns hash reference containing tag information in MP3 file. The keys returned are the same as those supplied for set_mp3tag, except in the case of RAW_V2 being set.
If VERSION is 1, the information is taken from the ID3v1 tag (if present). If VERSION is 2, the information is taken from the ID3v2 tag (if present). If VERSION is not supplied, or is false, the ID3v1 tag is read if present, and then, if present, the ID3v2 tag information will override any existing ID3v1 tag info.
If RAW_V2 is 1, the raw ID3v2 tag data is returned, without any manipulation of text encoding. The key name is the same as the frame ID (ID to name mappings are in the global %v2_tag_names).
If RAW_V2 is 2, the ID3v2 tag data is returned, manipulating for Unicode if necessary, etc. It also takes multiple values for a given key (such as comments) and puts them in an arrayref.
If the ID3v2 version is older than ID3v2.2.0 or newer than ID3v2.4.0, it will not be read.
Strings returned will be in Latin-1, unless UTF-8 is specified (use_mp3_utf8), (unless RAW_V2 is 1).
Also returns a TAGVERSION key, containing the ID3 version used for the returned data (if TAGVERSION argument is 0, may contain two versions).
get_mp3info (FILE)
Returns hash reference containing file information for MP3 file. This data cannot be changed. Returned data:
VERSION MPEG audio version (1, 2, 2.5)
LAYER MPEG layer description (1, 2, 3)
STEREO boolean for audio is in stereo
VBR boolean for variable bitrate
BITRATE bitrate in kbps (average for VBR files)
FREQUENCY frequency in kHz
SIZE bytes in audio stream
OFFSET bytes offset that stream begins
SECS total seconds
MM minutes
SS leftover seconds
MS leftover milliseconds
TIME time in MM:SS
COPYRIGHT boolean for audio is copyrighted
PADDING boolean for MP3 frames are padded
MODE channel mode (0 = stereo, 1 = joint stereo,
2 = dual channel, 3 = single channel)
FRAMES approximate number of frames
FRAME_LENGTH approximate length of a frame
VBR_SCALE VBR scale from VBR header
On error, returns nothing and sets $@.
<<lessSYNOPSIS
#!perl -w
use MP3::Info;
my $file = Pearls_Before_Swine.mp3;
set_mp3tag($file, Pearls Before Swine, q"77s",
Sticks and Stones, 1990,
q"(c) 1990 77s LTD.", rock & roll);
my $tag = get_mp3tag($file) or die "No TAG info";
$tag->{GENRE} = rock;
set_mp3tag($file, $tag);
my $info = get_mp3info($file);
printf "$file length is %d:%dn", $info->{MM}, $info->{SS};
my $mp3 = new MP3::Info $file;
$mp3->title(Perls Before Swine);
printf "$file length is %s, title is %sn",
$mp3->time, $mp3->title;
$mp3 = MP3::Info->new(FILE)
OOP interface to the rest of the module. The same keys available via get_mp3info and get_mp3tag are available via the returned object (using upper case or lower case; but note that all-caps "VERSION" will return the module version, not the MP3 version).
Passing a value to one of the methods will set the value for that tag in the MP3 file, if applicable.
use_mp3_utf8([STATUS])
Tells MP3::Info to (or not) return TAG info in UTF-8. TRUE is 1, FALSE is 0. Default is TRUE, if available.
Will only be able to turn it on if Encode is available. ID3v2 tags will be converted to UTF-8 according to the encoding specified in each tag; ID3v1 tags will be assumed Latin-1 and converted to UTF-8.
Function returns status (TRUE/FALSE). If no argument is supplied, or an unaccepted argument is supplied, function merely returns status.
This function is not exported by default, but may be exported with the :utf8 or :all export tag.
use_winamp_genres()
Puts WinAmp genres into @mp3_genres and %mp3_genres (adds 68 additional genres to the default list of 80). This is a separate function because these are non-standard genres, but they are included because they are widely used.
You can import the data structures with one of:
use MP3::Info qw(:genres);
use MP3::Info qw(:DEFAULT :genres);
use MP3::Info qw(:all);
remove_mp3tag (FILE [, VERSION, BUFFER])
Can remove ID3v1 or ID3v2 tags. VERSION should be 1 for ID3v1 (the default), 2 for ID3v2, and ALL for both.
For ID3v1, removes last 128 bytes from file if those last 128 bytes begin with the text TAG. File will be 128 bytes shorter.
For ID3v2, removes ID3v2 tag. Because an ID3v2 tag is at the beginning of the file, we rewrite the file after removing the tag data. The buffer for rewriting the file is 4MB. BUFFER (in bytes) ca change the buffer size.
Returns the number of bytes removed, or -1 if no tag removed, or undef if there is an error.
set_mp3tag (FILE, TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE [, TRACKNUM])
set_mp3tag (FILE, $HASHREF)
Adds/changes tag information in an MP3 audio file. Will clobber any existing information in file.
Fields are TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE. All fields have a 30-byte limit, except for YEAR, which has a four-byte limit, and GENRE, which is one byte in the file. The GENRE passed in the function is a case-insensitive text string representing a genre found in @mp3_genres.
Will accept either a list of values, or a hashref of the type returned by get_mp3tag.
If TRACKNUM is present (for ID3v1.1), then the COMMENT field can only be 28 bytes.
ID3v2 support may come eventually. Note that if you set a tag on a file with ID3v2, the set tag will be for ID3v1[.1] only, and if you call get_mp3tag on the file, it will show you the (unchanged) ID3v2 tags, unless you specify ID3v1.
get_mp3tag (FILE [, VERSION, RAW_V2])
Returns hash reference containing tag information in MP3 file. The keys returned are the same as those supplied for set_mp3tag, except in the case of RAW_V2 being set.
If VERSION is 1, the information is taken from the ID3v1 tag (if present). If VERSION is 2, the information is taken from the ID3v2 tag (if present). If VERSION is not supplied, or is false, the ID3v1 tag is read if present, and then, if present, the ID3v2 tag information will override any existing ID3v1 tag info.
If RAW_V2 is 1, the raw ID3v2 tag data is returned, without any manipulation of text encoding. The key name is the same as the frame ID (ID to name mappings are in the global %v2_tag_names).
If RAW_V2 is 2, the ID3v2 tag data is returned, manipulating for Unicode if necessary, etc. It also takes multiple values for a given key (such as comments) and puts them in an arrayref.
If the ID3v2 version is older than ID3v2.2.0 or newer than ID3v2.4.0, it will not be read.
Strings returned will be in Latin-1, unless UTF-8 is specified (use_mp3_utf8), (unless RAW_V2 is 1).
Also returns a TAGVERSION key, containing the ID3 version used for the returned data (if TAGVERSION argument is 0, may contain two versions).
get_mp3info (FILE)
Returns hash reference containing file information for MP3 file. This data cannot be changed. Returned data:
VERSION MPEG audio version (1, 2, 2.5)
LAYER MPEG layer description (1, 2, 3)
STEREO boolean for audio is in stereo
VBR boolean for variable bitrate
BITRATE bitrate in kbps (average for VBR files)
FREQUENCY frequency in kHz
SIZE bytes in audio stream
OFFSET bytes offset that stream begins
SECS total seconds
MM minutes
SS leftover seconds
MS leftover milliseconds
TIME time in MM:SS
COPYRIGHT boolean for audio is copyrighted
PADDING boolean for MP3 frames are padded
MODE channel mode (0 = stereo, 1 = joint stereo,
2 = dual channel, 3 = single channel)
FRAMES approximate number of frames
FRAME_LENGTH approximate length of a frame
VBR_SCALE VBR scale from VBR header
On error, returns nothing and sets $@.
Download (0.097MB)
Added: 2006-06-23 License: GPL (GNU General Public License) Price:
1222 downloads
Polymorphic XML Parser 1.1.6
Polymorphic XML Parser is a validating XML parser for the programming language Objective Caml. more>>
Polymorphic XML Parser is a validating XML parser for the programming language Objective Caml.
In October, 1999, I started writing a validating XML parser for OCaml; the first published versions have been called "Markup" (simply because the package name was "markup"). After this parser had some success, I decided to revise the whole code, and to redesign the parser where it was needed. The result of this work is PXP, the Polymorphic XML Parser. The name reflects an important property of the parser, namely that the type of the XML nodes can be customized; a feature which is missing in most other XML parsers.
Now, one year later, I can announce the first stable version of PXP. "Stable" means mostly that the interface of the parser has become stable, i.e. future changes will extend but not break the current interface. The parser worked relatively well from the very beginning, and during the pre-release phase (several months) users reported only few bugs. I am now relatively sure that PXP is mature enough to be used in applications.
In general, the task of a XML parser is to read XML text, and to represent the text somehow in memory. There are several models for the data structures; for PXP I have chosen the luxury representation as object tree, in which every XML node is stored as two objects. One object contains the set of methods describing the fixed properties of every node; the other object is called the extension object and can be configured by the user of the parser.
The extension object is the polymorphic part of the representation. The type of the class may be arbitrary (except three base methods which connect the object to the tree), and the parser has a mechanism to dynamically select the class of the object depending on the element type of the XML node.
Main features:
- The XML instance is validated against the DTD; any violation of a validation constraint leads to the rejection of the instance. The validator has been carefully implemented, and conforms strictly to the standard. If needed, it is also possible to run the parser in a well-formedness mode.
- If possible, the validator applies a deterministic finite automaton to validate the content models. This ensures that validation can always be performed in linear time. However, in the case that the content models are not deterministic, the parser uses a backtracking algorithm which can be much slower. - It is also possible to reject non-deterministic content models.
- The parser can read XML text encoded in a variety of character sets. Independent of this, it is possible to choose the encoding of the internal representation of the tree nodes; the parser automatically converts the input text to this encoding. Currently, the parser supports UTF-8 and ISO-8859-1 as internal encodings.
- The interface of the parser has been designed such that it is best integrated into the language OCaml. The first goal was simplicity of usage which is achieved by many convenience methods and functions, and by allowing the user to select which parts of the XML text are actually represented in the tree. For example, it is possible to store processing instructions as tree nodes, but the parser can also be configured such that these instructions are put into hashtables. The information model is compatible with the requirements of XML-related standards such as XPath.
- There is also an interface for DTDs; you can parse and access sequences of declarations.
<<lessIn October, 1999, I started writing a validating XML parser for OCaml; the first published versions have been called "Markup" (simply because the package name was "markup"). After this parser had some success, I decided to revise the whole code, and to redesign the parser where it was needed. The result of this work is PXP, the Polymorphic XML Parser. The name reflects an important property of the parser, namely that the type of the XML nodes can be customized; a feature which is missing in most other XML parsers.
Now, one year later, I can announce the first stable version of PXP. "Stable" means mostly that the interface of the parser has become stable, i.e. future changes will extend but not break the current interface. The parser worked relatively well from the very beginning, and during the pre-release phase (several months) users reported only few bugs. I am now relatively sure that PXP is mature enough to be used in applications.
In general, the task of a XML parser is to read XML text, and to represent the text somehow in memory. There are several models for the data structures; for PXP I have chosen the luxury representation as object tree, in which every XML node is stored as two objects. One object contains the set of methods describing the fixed properties of every node; the other object is called the extension object and can be configured by the user of the parser.
The extension object is the polymorphic part of the representation. The type of the class may be arbitrary (except three base methods which connect the object to the tree), and the parser has a mechanism to dynamically select the class of the object depending on the element type of the XML node.
Main features:
- The XML instance is validated against the DTD; any violation of a validation constraint leads to the rejection of the instance. The validator has been carefully implemented, and conforms strictly to the standard. If needed, it is also possible to run the parser in a well-formedness mode.
- If possible, the validator applies a deterministic finite automaton to validate the content models. This ensures that validation can always be performed in linear time. However, in the case that the content models are not deterministic, the parser uses a backtracking algorithm which can be much slower. - It is also possible to reject non-deterministic content models.
- The parser can read XML text encoded in a variety of character sets. Independent of this, it is possible to choose the encoding of the internal representation of the tree nodes; the parser automatically converts the input text to this encoding. Currently, the parser supports UTF-8 and ISO-8859-1 as internal encodings.
- The interface of the parser has been designed such that it is best integrated into the language OCaml. The first goal was simplicity of usage which is achieved by many convenience methods and functions, and by allowing the user to select which parts of the XML text are actually represented in the tree. For example, it is possible to store processing instructions as tree nodes, but the parser can also be configured such that these instructions are put into hashtables. The information model is compatible with the requirements of XML-related standards such as XPath.
- There is also an interface for DTDs; you can parse and access sequences of declarations.
Download (0.60MB)
Added: 2006-03-22 License: GPL (GNU General Public License) Price:
1313 downloads
Verbiste 0.1.21
Verbiste is a French conjugation system. more>>
Verbiste is a French conjugation system. Verbiste project contains a C++ library, two programs that can be run from the command line or from another program, and a GNOME applet.
This applet shows a text field in the GNOME Panel where the user can enter a conjugated verb and obtain its complete conjugation. The knowledge base is represented in XML and contains over 6800 verbs.
The current version is 0.1.13 (2005-10-10). An error in the present conditional tense of the conjugation template men:tir has been fixed.
Verbiste is free software distributed under the GNU General Public License. Please note that this means that proprietary software linked with this library cannot be distributed legally.
Enhancements:
- This release a --utf8 option for the commands french-conjugator and french-deconjugator to force them to assume that the terminal uses the UTF-8 encoding instead of Latin-1.
<<lessThis applet shows a text field in the GNOME Panel where the user can enter a conjugated verb and obtain its complete conjugation. The knowledge base is represented in XML and contains over 6800 verbs.
The current version is 0.1.13 (2005-10-10). An error in the present conditional tense of the conjugation template men:tir has been fixed.
Verbiste is free software distributed under the GNU General Public License. Please note that this means that proprietary software linked with this library cannot be distributed legally.
Enhancements:
- This release a --utf8 option for the commands french-conjugator and french-deconjugator to force them to assume that the terminal uses the UTF-8 encoding instead of Latin-1.
Download (0.34MB)
Added: 2007-08-21 License: GPL (GNU General Public License) Price:
795 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above xml version 1.0 encoding utf 8 search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed