country-ip-spoofer
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.1 • Public • Published

    Npm Version Build Status Test Coverage Maintainability Known Vulnerabilities dependencies Status devDependencies Status

    country-ip-spoofer

    A fully typed Node.js module that generates a random IP address that is associated with a desired country.

    This module is especially useful if you use an API that requires an IP address to be passed to it in order to realize the country of a user, and you want to spoof the user country.

    Important notes

    This module leverages the IP2Location™ data set, which is licensed under Creative Commons Attribution-ShareAlike 4.0.
    As such, the module does not package the actual data, and you are responsible to load it to the module while not infringing with said licence.

    • For better results, refresh your data set once in a while.

    Installation

    npm install country-ip-spoofer

    Or

    yarn add country-ip-spoofer

    Setup

    Before you begin, you need to prepare the data set to be used by the module (only perform once).

    Please download the IPV4 CSV file from IP2Location™ and run the following temp script (install the csv package if it is missing - you can delete it later):

    import {createDataTable} from 'country-ip-spoofer/dataTableCreator';
     
    const csfFile = 'path to the downloaded csv file';
    const outputFile = 'path to output the data set';
     
    createDataTable(csfFile, outputFile)
        .then(() => {
            console.log('done');
        });

    Then save the output file to your project.

    Usage

    import * as request from 'request'; // We only use this to test the resulting ips
    import { getIpOfCountry, setDataTable, DataTable } from 'country-ip-spoofer';
    import * as dataSet from 'path to your json data set form previous step';
     
    // Load the data set before yuo begin
    setDataTable(dataSet as DataTable);
     
    const countryCode = 'AU';
     
    const ip = getIpOfCountry(countryCode);
    console.log(ip); // prints '103.246.130.28' for example
     
    // Test out the ip location
    const requestParams = {
        url: `http://ip-api.com/json/${ip}`,
        json: true,
    };
    request(requestParams, (err, result) => {
        const realCountryCode = result.toJSON().body.countryCode;
        console.log(realCountryCode); // Should print 'AU'
        console.log(realCountryCode === countryCode ? 'Success' : 'Fail'); // Should print 'Success'
    });

    Install

    npm i country-ip-spoofer

    DownloadsWeekly Downloads

    57

    Version

    1.0.1

    License

    GPL-3.0

    Unpacked Size

    43.6 kB

    Total Files

    11

    Last publish

    Collaborators

    • regevbr