> # MOIRA #
> Most Outstanding IP Reporting Assistant

## Description ##

MOIRA is a Node module that retrieves your external IP address asynchronously. It works by requesting your IP from several different IP-fetching services simultaneously and reports the quickest result after verifying that it is a valid IP address. Similar modules that rely on only a single IP-reporting service can introduce issues in the event that the service is offline; I needed something with a bit more redundancy and reliability.

## Installation ##

You may install MOIRA via Node Package Manager as follows:

    npm install moira

The source code is available on [GitHub](https://github.com/mjhasbach/MOIRA).

## Usage ##

Example (see test/test.js)

    var moira = require('../lib/moira');

    moira.getIP(function(err, IP, service) {
        if(err) {
            console.log("All attempts to retrieve your IP address were exhausted. Is there a problem with your connection?");
        } else {
            console.log("Your external IP address is " + IP);
            console.log("The fastest service to return your IP address was " + service);
        }
    });

Callback Arguments

    "err" - Null if an IP address was found
    "IP" - String - Validated IPv4 address (e.g. 74.125.239.128)
    "service" - String - The URL of the IP reporting service that returned the IP address (e.g. http://whatismyip.akamai.com/)

## Improving MOIRA ##

If you would like to contribute code or simply add an IP reporting service, feel free to submit a pull request. Please report issues [here](https://github.com/mjhasbach/MOIRA/issues).
# MOIRA
##### Most Outstanding IP Reporting Assistant

### Installation

You may install MOIRA via ```npm``` as follows:

    npm install moira

The source code is available on [GitHub](https://github.com/mjhasbach/MOIRA).

### Usage

#### moira.getIP( callback( ```err```, ```ip```, ```service``` ))

Retrieve your external IP address asynchronously by requesting it from several different IP-fetching services simultaneously. ```moira.getIP()``` reports the quickest result after verifying that it is a valid IP address. ```err``` is null if an IP address was found. ```ip``` is an IPv4 address. ```service``` is the URL of the IP-reporting service that returned ```ip``` (e.g. http://whatismyip.akamai.com/).

Example (see test/test.js):

    var moira = require( 'moira' );
    
    moira.getIP( function( err, ip, service ){
        if( err ) throw err;
    
        console.log( 'Your external IP address is ' + ip );
        console.log( 'The fastest service to return your IP address was ' + service );
    });

### Improving MOIRA

If you would like to contribute code or simply add an IP reporting service, feel free to submit a pull request. Please report issues [here](https://github.com/mjhasbach/MOIRA/issues).
Improve readme formatting and example
Improve readme formatting and example
