reverse number lookup
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 3701
Free Unlisted Phone Numbers Lookup Tool 2.0
With the Free Unlisted Phone Numbers Lookup Tool, You Can Input Unknown Numbers and Run them Across Databases of Phone Numbers to See if the Owners I... more>> <<less
Download (532KB)
Added: 2009-04-14 License: Freeware Price: Free
195 downloads
number 2.30
number is a perl script that will print the English name of a number. more>>
number is a perl script that will print the English name of a number. One can print names of extremely large numbers (e.g. 1e1234567). Number can be run on the command line, or as a CGI script when run as number.cgi.
Number prints names in both the American and European naming system. It can also print the decimal expansion of a number in either naming system.
<<lessNumber prints names in both the American and European naming system. It can also print the decimal expansion of a number in either naming system.
Download (0.028MB)
Added: 2006-09-19 License: Freely Distributable Price:
1130 downloads
Enhanced Reverse Pimpage 2.3 Beta 1
Enhanced Reverse Pimpage is an enhanced version of the original rpimp by Matt Miller. more>>
Enhanced Reverse Pimpage project is an enhanced version of the original rpimp by Matt Miller. Reverse Pimpage was designed to allow you to access a computer that is behind a firewall from outside that firewall itself.
The way it accomplishes this is by having the client (the computer behind the firewall) send a SYN request to a certain port at certain intervals. The computer that will access the client must run the server program, and when the time interval is up it will connect.
Once its connected, the client telnets to itself and routes data back and forth between the two.
NEW FEATURES
rpimp server
[ client box ] - -------> [ rpimp server box ]<<less
The way it accomplishes this is by having the client (the computer behind the firewall) send a SYN request to a certain port at certain intervals. The computer that will access the client must run the server program, and when the time interval is up it will connect.
Once its connected, the client telnets to itself and routes data back and forth between the two.
NEW FEATURES
rpimp server
[ client box ] - -------> [ rpimp server box ]<<less
Download (0.17MB)
Added: 2007-03-16 License: GPL (GNU General Public License) Price:
952 downloads
Convert::Number::Digits 0.03
Convert::Number::Digits is a Perl module that convert Digits Between the Scripts of Unicode. more>>
Convert::Number::Digits is a Perl module that convert Digits Between the Scripts of Unicode.
SYNOPSIS
use utf8;
require Convert::Number::Digits;
my $number = 12345;
my $d = new Convert::Number::Digits ( $number );
print "$number => ", $d->toArabic, "n";
my $gujarti = $d->toGujarti;
my $khmer = reverse ( $d->toKhmer );
$d->number ( $khmer ); # reset the number
print "$number => $gujarti => ", $d->number, " => ", $n->convert, "n";
The Convert::Number::Digits will convert a sequence of digits from one script supported in Unicode, into another. UTF-8 encoding is used for all scripts.
<<lessSYNOPSIS
use utf8;
require Convert::Number::Digits;
my $number = 12345;
my $d = new Convert::Number::Digits ( $number );
print "$number => ", $d->toArabic, "n";
my $gujarti = $d->toGujarti;
my $khmer = reverse ( $d->toKhmer );
$d->number ( $khmer ); # reset the number
print "$number => $gujarti => ", $d->number, " => ", $n->convert, "n";
The Convert::Number::Digits will convert a sequence of digits from one script supported in Unicode, into another. UTF-8 encoding is used for all scripts.
Download (0.005MB)
Added: 2006-08-02 License: Perl Artistic License Price:
1178 downloads
Test::Number::Delta 1.03
Test::Number::Delta is a Perl module to compare the difference between numbers against a given tolerance. more>>
Test::Number::Delta is a Perl module to compare the difference between numbers against a given tolerance.
SYNOPSIS
# Import test functions
use Test::Number::Delta;
# Equality test with default tolerance
delta_ok( 1e-5, 2e-5, values within 1e-6);
# Inequality test with default tolerance
delta_not_ok( 1e-5, 2e-5, values not within 1e-6);
# Provide specific tolerance
delta_within( 1e-3, 2e-3, 1e-4, values within 1e-4);
delta_not_within( 1e-3, 2e-3, 1e-4, values not within 1e-4);
# Compare arrays or matrices
@a = ( 3.14, 1.41 );
@b = ( 3.15, 1.41 );
delta_ok( @a, @b, compare @a and @b );
# Set a different default tolerance
use Test::Number::Delta within => 1e-5;
delta_ok( 1.1e-5, 2e-5, values within 1e-5); # ok
# Set a relative tolerance
use Test::Number::Delta relative => 1e-3;
delta_ok( 1.01, 1.0099, values within 1.01e-3);
At some point or another, most programmers find they need to compare floating-point numbers for equality. The typical idiom is to test if the absolute value of the difference of the numbers is within a desired tolerance, usually called epsilon. This module provides such a function for use with Test::Harness. Usage is similar to other test functions described in Test::More. Semantically, the delta_within function replaces this kind of construct:
ok ( abs($p - $q) < $epsilon, $p is equal to $q ) or
diag "$p is not equal to $q to within $epsilon";
While theres nothing wrong with that construct, its painful to type it repeatedly in a test script. This module does the same thing with a single function call. The delta_ok function is similar, but either uses a global default value for epsilon or else calculates a relative epsilon on the fly so that epsilon is scaled automatically to the size of the arguments to delta_ok. Both functions are exported automatically.
Because checking floating-point equality is not always reliable, it is not possible to check the equal to boundary of less than or equal to epsilon. Therefore, Test::Number::Delta only compares if the absolute value of the difference is less than epsilon (for equality tests) or greater than epsilon (for inequality tests).
<<lessSYNOPSIS
# Import test functions
use Test::Number::Delta;
# Equality test with default tolerance
delta_ok( 1e-5, 2e-5, values within 1e-6);
# Inequality test with default tolerance
delta_not_ok( 1e-5, 2e-5, values not within 1e-6);
# Provide specific tolerance
delta_within( 1e-3, 2e-3, 1e-4, values within 1e-4);
delta_not_within( 1e-3, 2e-3, 1e-4, values not within 1e-4);
# Compare arrays or matrices
@a = ( 3.14, 1.41 );
@b = ( 3.15, 1.41 );
delta_ok( @a, @b, compare @a and @b );
# Set a different default tolerance
use Test::Number::Delta within => 1e-5;
delta_ok( 1.1e-5, 2e-5, values within 1e-5); # ok
# Set a relative tolerance
use Test::Number::Delta relative => 1e-3;
delta_ok( 1.01, 1.0099, values within 1.01e-3);
At some point or another, most programmers find they need to compare floating-point numbers for equality. The typical idiom is to test if the absolute value of the difference of the numbers is within a desired tolerance, usually called epsilon. This module provides such a function for use with Test::Harness. Usage is similar to other test functions described in Test::More. Semantically, the delta_within function replaces this kind of construct:
ok ( abs($p - $q) < $epsilon, $p is equal to $q ) or
diag "$p is not equal to $q to within $epsilon";
While theres nothing wrong with that construct, its painful to type it repeatedly in a test script. This module does the same thing with a single function call. The delta_ok function is similar, but either uses a global default value for epsilon or else calculates a relative epsilon on the fly so that epsilon is scaled automatically to the size of the arguments to delta_ok. Both functions are exported automatically.
Because checking floating-point equality is not always reliable, it is not possible to check the equal to boundary of less than or equal to epsilon. Therefore, Test::Number::Delta only compares if the absolute value of the difference is less than epsilon (for equality tests) or greater than epsilon (for inequality tests).
Download (0.018MB)
Added: 2007-01-18 License: Perl Artistic License Price:
1015 downloads
Scalar::Number 0.001
Scalar::Number is a Perl module with numeric aspects of scalars. more>>
Scalar::Number is a Perl module with numeric aspects of scalars.
SYNOPSIS
use Scalar::Number qw(scalar_num_part);
$num = scalar_num_part($scalar);
use Scalar::Number qw(sclnum_is_natint sclnum_is_float);
if(sclnum_is_natint($value)) { ...
if(sclnum_is_float($value)) { ...
use Scalar::Number qw(sclnum_val_cmp sclnum_id_cmp);
@sorted_nums = sort { sclnum_val_cmp($a, $b) } @floats;
@sorted_nums = sort { sclnum_id_cmp($a, $b) } @floats;
This module is about the numeric part of plain (string) Perl scalars. A scalar has a numeric value, which may be expressed in either the native integer type or the native floating point type. Many values are expressible both ways, in which case the exact representation is insignificant. To fully understand Perl arithmetic it is necessary to know about both of these representations, and the differing behaviours of numbers according to which way they are expressible.
This module provides functions to extract the numeric part of a scalar, classify a number by expressibility, and compare numbers across representations.
<<lessSYNOPSIS
use Scalar::Number qw(scalar_num_part);
$num = scalar_num_part($scalar);
use Scalar::Number qw(sclnum_is_natint sclnum_is_float);
if(sclnum_is_natint($value)) { ...
if(sclnum_is_float($value)) { ...
use Scalar::Number qw(sclnum_val_cmp sclnum_id_cmp);
@sorted_nums = sort { sclnum_val_cmp($a, $b) } @floats;
@sorted_nums = sort { sclnum_id_cmp($a, $b) } @floats;
This module is about the numeric part of plain (string) Perl scalars. A scalar has a numeric value, which may be expressed in either the native integer type or the native floating point type. Many values are expressible both ways, in which case the exact representation is insignificant. To fully understand Perl arithmetic it is necessary to know about both of these representations, and the differing behaviours of numbers according to which way they are expressible.
This module provides functions to extract the numeric part of a scalar, classify a number by expressibility, and compare numbers across representations.
Download (0.009MB)
Added: 2007-05-21 License: Perl Artistic License Price:
886 downloads
Digest::MD5::Reverse 1.0
Digest::MD5::Reverse provides MD5 Reverse Lookup. more>>
Digest::MD5::Reverse provides MD5 Reverse Lookup.
MD5 sums (see RFC 1321 - The MD5 Message-Digest Algorithm) are used as a one-way hash of data. Due to the nature of the formula used, it is impossible to reverse it.
This module provides functions to search several online MD5 hashes database and return the results (or return undefined if no match found).
We are not breaking security. We are however making it easier to lookup the source of a MD5 sum.
Version restrictions:
- It is very slow, because it will search each library until match found or all library search finished.
<<lessMD5 sums (see RFC 1321 - The MD5 Message-Digest Algorithm) are used as a one-way hash of data. Due to the nature of the formula used, it is impossible to reverse it.
This module provides functions to search several online MD5 hashes database and return the results (or return undefined if no match found).
We are not breaking security. We are however making it easier to lookup the source of a MD5 sum.
Version restrictions:
- It is very slow, because it will search each library until match found or all library search finished.
Download (0.002MB)
Added: 2007-03-31 License: Perl Artistic License Price:
945 downloads
Number::Latin 1.01
Number::Latin is a Perl module that can convert to/from the number system a,b,...z,aa,ab.... more>>
Number::Latin is a Perl module that can convert to/from the number system "a,b,...z,aa,ab..."
SYNOPSIS
use Number::Latin;
print join( , map int2latin($_), 1 .. 30), "n";
#
# Prints:
# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad
Some applications, notably the numbering of points in outlines, use a scheme that starts with the letter "a", goes to "z", and then starts over with "aa" thru "az", then "ba", and so on. (The W3C refers to this numbering system as "lower-latin"/"upper-latin" or "lower alpha"/"upper alpha", in discussions of HTML/CSS options for rendering of list elements (OL/LI).)
This module provides functions that deal with that numbering system, converting between it and integer values.
FUNCTIONS
This module exports four functions, int2latin, int2Latin, int2LATIN, and latin2int:
$latin = int2latin( INTEGER )
This returns the INTEGERth item in the sequence (a .. z, aa, ab, etc). For example, int2latin(1) is "a", int2latin(2) is "b", int2latin(26) is "z", int2latin(30) is "ad", and so for any nonzero integer.
$latin = int2Latin( INTEGER )
This is just like int2latin, except that the return value is has an initial capital. E.g., int2Latin(30) is "Ad".
$latin = int2LATIN( INTEGER )
This is just like int2latin, except that the return value is in all uppercase. E.g., int2LATIN(30) is "AD".
$latin = latin2int( INTEGER )
This converts back from latin number notation (regardless of capitalization!) to an integer value. E.g., latin2int("ad") is 30.
<<lessSYNOPSIS
use Number::Latin;
print join( , map int2latin($_), 1 .. 30), "n";
#
# Prints:
# a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad
Some applications, notably the numbering of points in outlines, use a scheme that starts with the letter "a", goes to "z", and then starts over with "aa" thru "az", then "ba", and so on. (The W3C refers to this numbering system as "lower-latin"/"upper-latin" or "lower alpha"/"upper alpha", in discussions of HTML/CSS options for rendering of list elements (OL/LI).)
This module provides functions that deal with that numbering system, converting between it and integer values.
FUNCTIONS
This module exports four functions, int2latin, int2Latin, int2LATIN, and latin2int:
$latin = int2latin( INTEGER )
This returns the INTEGERth item in the sequence (a .. z, aa, ab, etc). For example, int2latin(1) is "a", int2latin(2) is "b", int2latin(26) is "z", int2latin(30) is "ad", and so for any nonzero integer.
$latin = int2Latin( INTEGER )
This is just like int2latin, except that the return value is has an initial capital. E.g., int2Latin(30) is "Ad".
$latin = int2LATIN( INTEGER )
This is just like int2latin, except that the return value is in all uppercase. E.g., int2LATIN(30) is "AD".
$latin = latin2int( INTEGER )
This converts back from latin number notation (regardless of capitalization!) to an integer value. E.g., latin2int("ad") is 30.
Download (0.005MB)
Added: 2006-07-05 License: Perl Artistic License Price:
1206 downloads
Number::Encode 1.00
Number::Encode is a Perl module to encode bit strings into digit strings. more>>
Number::Encode is a Perl module to encode bit strings into digit strings.
SYNOPSIS
use Number::Encode qw(nonuniform uniform);
Provides a mechanism to convert arbitrary bit-strings into numeric digit strings. The transformation can be uniform or non-uniform depending on the type of distribution of the numeric digits achieved.
The former approach is useful for security-related applications such as calling cards and the such, which require a uniform digit distribution. The algorythm used to generate uniform distributions, while deterministic, is more constly than the non-uniform variant.
This module is distributed under the same terms and warranty as Perl itself.
<<lessSYNOPSIS
use Number::Encode qw(nonuniform uniform);
Provides a mechanism to convert arbitrary bit-strings into numeric digit strings. The transformation can be uniform or non-uniform depending on the type of distribution of the numeric digits achieved.
The former approach is useful for security-related applications such as calling cards and the such, which require a uniform digit distribution. The algorythm used to generate uniform distributions, while deterministic, is more constly than the non-uniform variant.
This module is distributed under the same terms and warranty as Perl itself.
Download (0.002MB)
Added: 2007-04-03 License: Perl Artistic License Price:
934 downloads
Number::Interval 0.01
Number::Interval is a Perl module that can implement a representation of a numeric interval. more>>
Number::Interval is a Perl module that can implement a representation of a numeric interval.
SYNOPSIS
use Number::Interval;
$i = new Number::Interval( Min => -4, Max => 20);
$i = new Number::Interval( Min => 0 );
$is = $i->contains( $value );
$status = $i->intersection( $i2 );
print "$i";
Simple class to implement a closed or open interval. Can be used to compare different intervals, determine set membership, calculate intersections and provide default stringification methods.
Intervals can be bound or unbound. If max is less than min the interval is inverted.
<<lessSYNOPSIS
use Number::Interval;
$i = new Number::Interval( Min => -4, Max => 20);
$i = new Number::Interval( Min => 0 );
$is = $i->contains( $value );
$status = $i->intersection( $i2 );
print "$i";
Simple class to implement a closed or open interval. Can be used to compare different intervals, determine set membership, calculate intersections and provide default stringification methods.
Intervals can be bound or unbound. If max is less than min the interval is inverted.
Download (0.006MB)
Added: 2007-03-16 License: GPL (GNU General Public License) Price:
952 downloads
Number::Phone::IE 0.2
Number::Phone::IE is a Perl module with Republic of Ireland-specific methods for Number::Phone. more>>
Number::Phone::IE is a Perl module with Republic of Ireland-specific methods for Number::Phone.
SYNOPSIS
use Number::Phone;
$dermots_phone = Number::Phone->new(IE, 017654321);
METHODS
The following methods from Number::Phone are overridden:
is_valid
The number is valid within the national numbering scheme. It may or may not yet be allocated, or it may be reserved. Any number which returns true for any of the following methods will also be valid.
is_allocated
The number has been allocated to a telco for use. It may or may not yet be in use or may be reserved. Not currently implemented.
is_geographic
The number refers to a geographic area.
is_fixed_line
The number, when in use, can only refer to a fixed line.
is_mobile
The number, when in use, can only refer to a mobile phone.
is_pager
The number, when in use, can only refer to a pager.
is_tollfree
Callers will not be charged for calls to this number under normal circumstances.
is_specialrate
The number, when in use, attracts special rates. For instance, national dialling at local rates, or premium rates for services.
is_adult
The number, when in use, goes to a service of an adult nature, such as porn.
is_network_service
The number is some kind of network service such as a human operator, directory enquiries, emergency services etc
country_code
Returns 353.
regulator
Returns some text in an appropriate character set saying who the telecoms regulator is, with optional details such as their web site or phone number.
areacode
Return the area code - if applicable - for the number. If not applicable, returns undef.
areaname
Return the area name - if applicable - for the number, or undef.
subscriber
Return the subscriber part of the number
operator
Return the name of the telco operating this number, in an appropriate character set and with optional details such as their web site or phone number. Not currently implemented.
format
Return a sanely formatted version of the number, complete with IDD code, eg for the Irish number (021) 765-4321 it would return +353 21 7654321.
country
If the number is_international, return the two-letter ISO country code.
NYI
Version restrictions:
- Strictly sppeaking, this kind of duplication of the Number::Phone::UK class is bad. A tidy-up is in order, though it may emerge that a completely new implemantation is better.
- The results are only as accurate as my own investigations into current allocations. User feedback welcome.
- While the names of the nominal owners of mobile prefixes are given, number portability makes this information unreliable.
<<lessSYNOPSIS
use Number::Phone;
$dermots_phone = Number::Phone->new(IE, 017654321);
METHODS
The following methods from Number::Phone are overridden:
is_valid
The number is valid within the national numbering scheme. It may or may not yet be allocated, or it may be reserved. Any number which returns true for any of the following methods will also be valid.
is_allocated
The number has been allocated to a telco for use. It may or may not yet be in use or may be reserved. Not currently implemented.
is_geographic
The number refers to a geographic area.
is_fixed_line
The number, when in use, can only refer to a fixed line.
is_mobile
The number, when in use, can only refer to a mobile phone.
is_pager
The number, when in use, can only refer to a pager.
is_tollfree
Callers will not be charged for calls to this number under normal circumstances.
is_specialrate
The number, when in use, attracts special rates. For instance, national dialling at local rates, or premium rates for services.
is_adult
The number, when in use, goes to a service of an adult nature, such as porn.
is_network_service
The number is some kind of network service such as a human operator, directory enquiries, emergency services etc
country_code
Returns 353.
regulator
Returns some text in an appropriate character set saying who the telecoms regulator is, with optional details such as their web site or phone number.
areacode
Return the area code - if applicable - for the number. If not applicable, returns undef.
areaname
Return the area name - if applicable - for the number, or undef.
subscriber
Return the subscriber part of the number
operator
Return the name of the telco operating this number, in an appropriate character set and with optional details such as their web site or phone number. Not currently implemented.
format
Return a sanely formatted version of the number, complete with IDD code, eg for the Irish number (021) 765-4321 it would return +353 21 7654321.
country
If the number is_international, return the two-letter ISO country code.
NYI
Version restrictions:
- Strictly sppeaking, this kind of duplication of the Number::Phone::UK class is bad. A tidy-up is in order, though it may emerge that a completely new implemantation is better.
- The results are only as accurate as my own investigations into current allocations. User feedback welcome.
- While the names of the nominal owners of mobile prefixes are given, number portability makes this information unreliable.
Download (0.11MB)
Added: 2007-04-03 License: Perl Artistic License Price:
939 downloads
Number::WithError 0.08
Number::WithError is a Perl module that contains numbers with error propagation and scientific rounding. more>>
Number::WithError is a Perl module that contains numbers with error propagation and scientific rounding.
SYNOPSIS
use Number::WithError;
my $num = Number::WithError->new(5.647, 0.31);
print $num . "n";
# prints 5.65e+00 +/- 3.1e-01
# (I.e. it automatically does scientific rounding)
my $another = $num * 3;
print $another . "n";
# propagates the error assuming gaussian errors
# prints 1.69e+01 +/- 9.3e-01
# trigonometric functions also work:
print sin($another) . "n";
# prints -9.4e-01 +/- 3.1e-01
my $third = $another ** $num;
print $third. "n";
# propagates both errors into one.
# prints 8.7e+06 +/- 8.1e+06
# shortcut for the constructor:
use Number::WithError witherror;
$num = witherror(0.00032678, [2.5e-5, 3e-5], 5e-6);
# can deal with any number of errors, even with asymmetric errors
print $num . "n";
# prints 3.268e-04 + 2.5e-05 - 3.00e-05 +/- 5.0e-06
# Note: It may be annyoing that they dont all have the same
# exponent, but they *do* all have the sam significant digit!
This class is a container class for numbers with a number of associated symmetric and asymmetric errors. It overloads practically all common arithmetic operations and trigonometric functions to propagate the errors. It can do proper scientific rounding (as explained in more detail below in the documentation of the significant_digit() method).
You can use Math::BigFloat objects as the internal representation of numbers in order to support arbitrary precision calculations.
Errors are propagated using Gaussian error propagation.
With a notable exception, the test suite covers way over ninety percent of the code. The remaining holes are mostly difficult-to-test corner cases and sanity tests. The comparison routines are the exception for which there will be more extensive tests in a future release.
<<lessSYNOPSIS
use Number::WithError;
my $num = Number::WithError->new(5.647, 0.31);
print $num . "n";
# prints 5.65e+00 +/- 3.1e-01
# (I.e. it automatically does scientific rounding)
my $another = $num * 3;
print $another . "n";
# propagates the error assuming gaussian errors
# prints 1.69e+01 +/- 9.3e-01
# trigonometric functions also work:
print sin($another) . "n";
# prints -9.4e-01 +/- 3.1e-01
my $third = $another ** $num;
print $third. "n";
# propagates both errors into one.
# prints 8.7e+06 +/- 8.1e+06
# shortcut for the constructor:
use Number::WithError witherror;
$num = witherror(0.00032678, [2.5e-5, 3e-5], 5e-6);
# can deal with any number of errors, even with asymmetric errors
print $num . "n";
# prints 3.268e-04 + 2.5e-05 - 3.00e-05 +/- 5.0e-06
# Note: It may be annyoing that they dont all have the same
# exponent, but they *do* all have the sam significant digit!
This class is a container class for numbers with a number of associated symmetric and asymmetric errors. It overloads practically all common arithmetic operations and trigonometric functions to propagate the errors. It can do proper scientific rounding (as explained in more detail below in the documentation of the significant_digit() method).
You can use Math::BigFloat objects as the internal representation of numbers in order to support arbitrary precision calculations.
Errors are propagated using Gaussian error propagation.
With a notable exception, the test suite covers way over ninety percent of the code. The remaining holes are mostly difficult-to-test corner cases and sanity tests. The comparison routines are the exception for which there will be more extensive tests in a future release.
Download (0.027MB)
Added: 2007-07-05 License: Perl Artistic License Price:
841 downloads
The SpamBouncer 2.2 beta
The SpamBouncer is a spam filter that runs under Procmail, a Unix-based email processing program. more>>
The SpamBouncer is a spam filter that runs under Procmail, a Unix-based email processing program.
The SpamBouncer filters and classifies your incoming email, moving spam to a separate folder or deleting it entirely. This allows you to find your real email without having to read through a flood of spam first.
Enhancements:
- New features include the possibility to check the retired spammers list, autoreporting to SpamCop, finer grain control of reverse-DNS-lookup-based scoring of spam, support for new blocklists, easy bundling of minimal default options for quick-starting new users, and more.
- Usual housekeeping updates were performed.
<<lessThe SpamBouncer filters and classifies your incoming email, moving spam to a separate folder or deleting it entirely. This allows you to find your real email without having to read through a flood of spam first.
Enhancements:
- New features include the possibility to check the retired spammers list, autoreporting to SpamCop, finer grain control of reverse-DNS-lookup-based scoring of spam, support for new blocklists, easy bundling of minimal default options for quick-starting new users, and more.
- Usual housekeeping updates were performed.
Download (0.65MB)
Added: 2005-11-22 License: GPL (GNU General Public License) Price:
1432 downloads
RIR to DNS converter 0.1
RIR to DNS converter is a tool to convert Regional Internet Registry data to a DNS country lookup zone. more>>
RIR to DNS converter is a tool to convert Regional Internet Registry data to a DNS country lookup zone. You can use it to build your own DNS zone for looking up country codes from IP addresses.
It uses data directly from RIPE, ARIN, APNIC, LACNIC, and AFRINIC. The data can be updated on a schedule of your choosing.
The input data comes from:
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
The input data format is described in:
http://www.apnic.net/db/rir-stats-format.html
The output is a BIND 9 zone file that can be used to look up country codes
in a similar fashion to in-addr.arpa. For example, to find out what country
203.30.47.58 is:
host 58.47.30.203.rir.example.com
58.47.30.203.rir.example.com has address 127.0.65.86
where 65 and 85 are ASCII for A and U, which means 203.30.47.58 is
in Australia (AU).
HOW TO USE IT
Just feed it the above delegated- -latest files into stdin and it will
spit out the zone file to stdout. The zone file will only have the IP addresses,
so you could $INCLUDE it into a zone file that contains NS records, SOA, $ORIGIN,
etc.
WHY USE IT
You dont need the resolution of MaxMinds GeoIP database, but you do want
something that is free and you want it kept up to date on a schedule that
you decide.
You could use this to block or tag email based on countries, block or redirect
visitors to your website based on end-user country, and so on. Be very
careful about blocking mail this way, though, as you may block legitimate
email. Instead of blocking outright, use it in a SpamAssassin rule to add
something to the spam level, based on where the email comes from.
HOW IT WORKS
The RIR files contain ranges of IP addresses, and indicate what CC each range is allocated to. At the simplest level, rir2dns just sorts the ranges then iterates
through the IPs in each range and generates a reverse-dns-style A record that
represents the country code.
HOW IT WORKS - IN DETAIL
Rather than iterate through each IP address, the program tries to skip through
entire classes at a time (256 IPs, 65536 IPs, etc). Rather than iterate
through each IP, the loop iterates through classes or IP ranges (whichever are
smaller at the loop control), using control-breaks to accummulate neighbouring
ranges where possible so that entire classes that are in the same country dont
generate huge numbers of records.
Firstly, IPs are considered to be 4-digit numbers, but in base-256. In other
words, each octet is dealt with as if it were a single base-256 digit. This
turns out to be convenient because optimisations of large chunks of IP space can be done by looking for places where least-significant base-256 digits are zero.
Next, IP ranges are broken down into the following sub-ranges:
Optional individual IP addresses (ie: 4 octets)
Optional A-class ranges (ie: 3 octets)
Optional B-class ranges (ie: 2 octets)
Optional C-class ranges (ie: 1 octet)
Optional B-class ranges (ie: 2 octets)
Optional A-class ranges (ie: 3 octets)
Optional individual IP addresses (ie: 4 octets)
Considering that there is a pattern here, Im sure theres an elegant way to
handle breaking this down into two loops (one reducing the octets and one
increasing the octets), but I cant be bothered, so Ill break it down into
seven loops. Kind of hard-coded, but at least its simple.
For ease of processing, the IP addresses are actually converted to 32-bit numbers, then back again. This simplifies mathematics and looping through ranges.
Thats pretty much it, really...
Note that currently there are about 80,000 RIR records between all five
registries. This takes about 35 seconds on a 2.4GHz P4 to process, and
generates a 26MB file with around 3/4 million lines (RRs). This causes BIND
to use about 100MB or so of memory, and on a slow machine will probably cause it to take too long to reply, while it searches the zone. That size zone can
take a minute or two to load, which is quite a while.
Basic algorithm:
Read & process RIR data:
Read RIR ranges
Sort RIR ranges by start IP address
Glue together contiguous ranges of the same country
For each range
Generate the IPs at the start of the range
Generate the A-classes at the start of the range
Generate the B-classes at the start of the range
Generate the C-classes in the middle of the range
Generate the B-classes at the end of the range
Generate the A-classes at the end of the range
Generate the IPs at the end of the range
<<lessIt uses data directly from RIPE, ARIN, APNIC, LACNIC, and AFRINIC. The data can be updated on a schedule of your choosing.
The input data comes from:
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest
ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-latest
The input data format is described in:
http://www.apnic.net/db/rir-stats-format.html
The output is a BIND 9 zone file that can be used to look up country codes
in a similar fashion to in-addr.arpa. For example, to find out what country
203.30.47.58 is:
host 58.47.30.203.rir.example.com
58.47.30.203.rir.example.com has address 127.0.65.86
where 65 and 85 are ASCII for A and U, which means 203.30.47.58 is
in Australia (AU).
HOW TO USE IT
Just feed it the above delegated- -latest files into stdin and it will
spit out the zone file to stdout. The zone file will only have the IP addresses,
so you could $INCLUDE it into a zone file that contains NS records, SOA, $ORIGIN,
etc.
WHY USE IT
You dont need the resolution of MaxMinds GeoIP database, but you do want
something that is free and you want it kept up to date on a schedule that
you decide.
You could use this to block or tag email based on countries, block or redirect
visitors to your website based on end-user country, and so on. Be very
careful about blocking mail this way, though, as you may block legitimate
email. Instead of blocking outright, use it in a SpamAssassin rule to add
something to the spam level, based on where the email comes from.
HOW IT WORKS
The RIR files contain ranges of IP addresses, and indicate what CC each range is allocated to. At the simplest level, rir2dns just sorts the ranges then iterates
through the IPs in each range and generates a reverse-dns-style A record that
represents the country code.
HOW IT WORKS - IN DETAIL
Rather than iterate through each IP address, the program tries to skip through
entire classes at a time (256 IPs, 65536 IPs, etc). Rather than iterate
through each IP, the loop iterates through classes or IP ranges (whichever are
smaller at the loop control), using control-breaks to accummulate neighbouring
ranges where possible so that entire classes that are in the same country dont
generate huge numbers of records.
Firstly, IPs are considered to be 4-digit numbers, but in base-256. In other
words, each octet is dealt with as if it were a single base-256 digit. This
turns out to be convenient because optimisations of large chunks of IP space can be done by looking for places where least-significant base-256 digits are zero.
Next, IP ranges are broken down into the following sub-ranges:
Optional individual IP addresses (ie: 4 octets)
Optional A-class ranges (ie: 3 octets)
Optional B-class ranges (ie: 2 octets)
Optional C-class ranges (ie: 1 octet)
Optional B-class ranges (ie: 2 octets)
Optional A-class ranges (ie: 3 octets)
Optional individual IP addresses (ie: 4 octets)
Considering that there is a pattern here, Im sure theres an elegant way to
handle breaking this down into two loops (one reducing the octets and one
increasing the octets), but I cant be bothered, so Ill break it down into
seven loops. Kind of hard-coded, but at least its simple.
For ease of processing, the IP addresses are actually converted to 32-bit numbers, then back again. This simplifies mathematics and looping through ranges.
Thats pretty much it, really...
Note that currently there are about 80,000 RIR records between all five
registries. This takes about 35 seconds on a 2.4GHz P4 to process, and
generates a 26MB file with around 3/4 million lines (RRs). This causes BIND
to use about 100MB or so of memory, and on a slow machine will probably cause it to take too long to reply, while it searches the zone. That size zone can
take a minute or two to load, which is quite a while.
Basic algorithm:
Read & process RIR data:
Read RIR ranges
Sort RIR ranges by start IP address
Glue together contiguous ranges of the same country
For each range
Generate the IPs at the start of the range
Generate the A-classes at the start of the range
Generate the B-classes at the start of the range
Generate the C-classes in the middle of the range
Generate the B-classes at the end of the range
Generate the A-classes at the end of the range
Generate the IPs at the end of the range
Download (0.60MB)
Added: 2007-04-27 License: GPL (GNU General Public License) Price:
913 downloads
Geo::Lookup::ByTime 0.0.2
Geo::Lookup::ByTime is a Perl module to lookup location by time. more>>
Geo::Lookup::ByTime is a Perl module to lookup location by time.
SYNOPSIS
use Geo::Lookup::ByTime;
$lookup = Geo::Lookup::ByTime->new( @points );
my $pt = $lookup->nearest( $tm );
Given a set of timestamped locations guess the location at a particular time. This is a useful operation for, e.g., adding location information to pictures based on their timestamp and a GPS trace that covers the same time period.
INTERFACE
new( [ points ] )
Create a new object optionally supplying a list of points. The points may be supplied as an array or as a reference to an array. Each point may be a reference to a hash containing at least the keys lat, lon and time or a reference to an object that supports accessor methods called latitude, longitude and time.
If a coderef is supplied it is assumed to be an iterator that may be called repeatedly to yield a set of points.
add_points( [ points ] )
Add points. The specification for what constitutes a point is the same as for new.
nearest( $time [ , $max_dist ] )
Return a hash indicating the estimated position at the specified time. The returned hash has lat, lon and time keys like this:
my $best = {
lat => 54.29344,
lon => -2.02393,
time => $time
};
Returns undef if the position cant be computed. By default a position will be calculated for any point that lies within the range of time covered by the reference points. Optionally $max_dist may be specified in which case undef will be returned if the closest real point is more than that many metres away from the computed point.
If the requested time coincides exactly with the timestamp of one of the points the returned point will be at the same location as the matching point. If the time falls between the timestamps of two points the returned point will be linearly interpolated from those two points.
In an array context returns a list containing the synthetic point at the specified time (i.e. the value that would be returned in scalar context), the closest real point and the distance between the two in metres
my ($best, $nearest, $dist) = $lookup->nearest( $tm );
get_points()
Return a reference to an array containing all the points in ascending time order.
time_range()
Return as a two element list the time range from earliest to latest of the points in the index. Returns undef if the index is empty.
hav_distance($pt, ...)
Exportable function. Computes the Haversine distance in metres along the line described by the points passed in. Points must be references to hashes with keys lat and lon.
<<lessSYNOPSIS
use Geo::Lookup::ByTime;
$lookup = Geo::Lookup::ByTime->new( @points );
my $pt = $lookup->nearest( $tm );
Given a set of timestamped locations guess the location at a particular time. This is a useful operation for, e.g., adding location information to pictures based on their timestamp and a GPS trace that covers the same time period.
INTERFACE
new( [ points ] )
Create a new object optionally supplying a list of points. The points may be supplied as an array or as a reference to an array. Each point may be a reference to a hash containing at least the keys lat, lon and time or a reference to an object that supports accessor methods called latitude, longitude and time.
If a coderef is supplied it is assumed to be an iterator that may be called repeatedly to yield a set of points.
add_points( [ points ] )
Add points. The specification for what constitutes a point is the same as for new.
nearest( $time [ , $max_dist ] )
Return a hash indicating the estimated position at the specified time. The returned hash has lat, lon and time keys like this:
my $best = {
lat => 54.29344,
lon => -2.02393,
time => $time
};
Returns undef if the position cant be computed. By default a position will be calculated for any point that lies within the range of time covered by the reference points. Optionally $max_dist may be specified in which case undef will be returned if the closest real point is more than that many metres away from the computed point.
If the requested time coincides exactly with the timestamp of one of the points the returned point will be at the same location as the matching point. If the time falls between the timestamps of two points the returned point will be linearly interpolated from those two points.
In an array context returns a list containing the synthetic point at the specified time (i.e. the value that would be returned in scalar context), the closest real point and the distance between the two in metres
my ($best, $nearest, $dist) = $lookup->nearest( $tm );
get_points()
Return a reference to an array containing all the points in ascending time order.
time_range()
Return as a two element list the time range from earliest to latest of the points in the index. Returns undef if the index is empty.
hav_distance($pt, ...)
Exportable function. Computes the Haversine distance in metres along the line described by the points passed in. Points must be references to hashes with keys lat and lon.
Download (0.015MB)
Added: 2007-01-24 License: Perl Artistic License Price:
1003 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 reverse number lookup 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