ساده ، رایگان ، بدون ثبت‌نام

آدرس IP عمومی شما ،
به سادگی تمام

نشانی شما در اینترنت ، همراه با اطلاعات شبکه

آدرس IP عمومی شما

اتصال فعلی
216.73.216.103
شبکه و ارائه‌دهنده
Amazon.com, Inc.AS16509
کشور
United States
شهر
Columbus

موقعیت جغرافیایی تقریبی است و ممکن است با محل واقعی شما تفاوت داشته باشد.

در خط فرمان ، فقط یک دستور :

curl ipify.ir
برای توسعه‌دهندگان

یک درخواست ، آدرس IP

بدون کلید API و بدون ثبت‌نام.
قالب مناسب پروژه‌تان را انتخاب کنید.

دستورها را در خط فرمان اجرا کنید؛ باز کردن نشانی در مرورگر، همین صفحه را نمایش می‌دهد. پاسخ‌ها نمونه هستند.

دریافت IPv4 به صورت متن خام

curl -4 https://ipify.ir
203.0.113.42

دریافت IPv6

curl -6 https://ipify.ir
2001:db8::42

دریافت به صورت JSON

curl 'https://ipify.ir?format=json'
{"ip":"203.0.113.42"}

دریافت به صورت JSONP

curl 'https://ipify.ir?format=jsonp'
callback({"ip":"203.0.113.42"});

curl 'https://ipify.ir?format=jsonp&callback=getip'
getip({"ip":"203.0.113.42"});
از همین‌جا شروع کنید

بر اساس زبان پروژهٔ شما

نمونه‌کد برای ۳۸ زبان و ابزار برنامه‌نویسی

Arduino

if (client.connect("ipify.ir", 80)) {
    Serial.println("connected");
    client.println("GET / HTTP/1.0");
    client.println("Host: ipify.ir");
    client.println();
} else {
    Serial.println("connection failed");
}

Bash

#!/bin/bash

ip=$(curl -s https://ipify.ir)
echo "IP address is: $ip"

C

// gcc main.c -lcurl
#include <stdio.h>
#include <curl/curl.h>

int main(void) {
    CURL *curl = curl_easy_init();

    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://ipify.ir");
        printf("IP address is: ");
        curl_easy_perform(curl);
        curl_easy_cleanup(curl);
    }

    return 0;
}

C#

using System;
using System.Net;

namespace Ipify.Examples {
    class Program {
        public static void Main (string[] args) {
            WebClient webClient = new WebClient();
            string publicIp = webClient.DownloadString("https://ipify.ir");
            Console.WriteLine("IP address is: {0}", publicIp);
        }
    }
}

C++

// g++ main.cpp -lcurl
#include <iostream>
#include <string>
#include <curl/curl.h>

size_t write_body(char *data, size_t size, size_t nmemb, std::string *out) {
    out->append(data, size * nmemb);
    return size * nmemb;
}

int main() {
    CURL *curl = curl_easy_init();
    std::string ip;

    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://ipify.ir");
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_body);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ip);
        curl_easy_perform(curl);
        curl_easy_cleanup(curl);
    }

    std::cout << "IP address is: " << ip << std::endl;
    return 0;
}

Clojure

(println "IP address is:" (slurp "https://ipify.ir"))

Crystal

require "http/client"

ip = HTTP::Client.get("https://ipify.ir").body
puts "IP address is: #{ip}"

D

import std.stdio;
import std.net.curl;

void main() {
    auto ip = get("https://ipify.ir");
    writeln("IP address is: ", ip);
}

Dart

// dart pub add http
import 'package:http/http.dart' as http;

void main() async {
  final response = await http.get(Uri.parse('https://ipify.ir'));
  print('IP address is: ${response.body}');
}

Elixir

:inets.start
{:ok, {_, _, inet_addr}} = :httpc.request('http://ipify.ir')
:inets.stop

Erlang

inets:start(),
ssl:start(),
{ok, {_, _, Ip}} = httpc:request("https://ipify.ir"),
io:format("IP address is: ~s~n", [Ip]).

F#

open System.Net.Http

let client = new HttpClient()
let ip = client.GetStringAsync("https://ipify.ir") |> Async.AwaitTask |> Async.RunSynchronously

printfn "IP address is: %s" ip

Go

package main

import (
        "io/ioutil"
        "net/http"
        "os"
)

func main() {
        res, _ := http.Get("https://ipify.ir")
        ip, _ := ioutil.ReadAll(res.Body)
        os.Stdout.Write(ip)
}

Groovy

def ip = new URL('https://ipify.ir').text

println "IP address is: $ip"

Haskell

-- cabal install http-conduit
import Network.HTTP.Simple
import qualified Data.ByteString.Char8 as B

main :: IO ()
main = do
    response <- httpBS "https://ipify.ir"
    B.putStrLn ("IP address is: " <> getResponseBody response)

Java

try (java.util.Scanner s = new java.util.Scanner(new java.net.URL("https://ipify.ir").openStream(), "UTF-8").useDelimiter("\\A")) {
    System.out.println("My current IP address is " + s.next());
} catch (java.io.IOException e) {
    e.printStackTrace();
}

JavaScript

<script type="application/javascript">
  function getIP(json) {
    document.write("IP address is: ", json.ip);
  }
</script>

<script type="application/javascript" src="https://ipify.ir?format=jsonp&callback=getIP"></script>

jQuery

<script type="application/javascript">
  $(function() {
    $.getJSON("https://ipify.ir?format=jsonp&callback=?",
      function(json) {
        document.write("IP address is: ", json.ip);
      }
    );
  });
</script>

Julia

using Downloads

ip = String(take!(Downloads.download("https://ipify.ir", IOBuffer())))
println("IP address is: $ip")

Kotlin

import java.net.URL

fun main() {
    val ip = URL("https://ipify.ir").readText()
    println("IP address is: $ip")
}

Lua

socket_http = require "http.compat.socket"
body = assert(socket_http.request("https://ipify.ir"))
print(body)

MATLAB

ip = webread('https://ipify.ir');

fprintf('IP address is: %s\n', ip);

Nim

import std/httpclient

let client = newHttpClient()
echo "IP address is: ", client.getContent("https://ipify.ir")

Node.js

var http = require('http');

http.get({'host': 'ipify.ir', 'port': 80, 'path': '/'}, function(resp) {
  resp.on('data', function(ip) {
    console.log("IP address is: " + ip);
  });
});

Objective-C

#import <Foundation/Foundation.h>

int main() {
    @autoreleasepool {
        NSURL *url = [NSURL URLWithString:@"https://ipify.ir"];
        NSString *ip = [NSString stringWithContentsOfURL:url
                                                encoding:NSUTF8StringEncoding
                                                   error:nil];
        NSLog(@"IP address is: %@", ip);
    }

    return 0;
}

OCaml

(* opam install ocurl *)
let () =
  let buffer = Buffer.create 32 in
  let conn = Curl.init () in
  Curl.set_url conn "https://ipify.ir";
  Curl.set_writefunction conn (fun s -> Buffer.add_string buffer s; String.length s);
  Curl.perform conn;
  Curl.cleanup conn;
  print_endline ("IP address is: " ^ Buffer.contents buffer)

Perl

use strict;
use warnings;
use LWP::UserAgent;

my $ua = new LWP::UserAgent();
my $ip = $ua->get('https://ipify.ir')->content;
print 'IP address is: '. $ip;

PHP

<?php

$ip = file_get_contents('https://ipify.ir');
echo "IP address is: $ip";

PowerShell

$ip = Invoke-RestMethod -Uri 'https://ipify.ir?format=json'
"IP address is: $($ip.ip)"

Python

# pip install requests
from requests import get

ip = get('https://ipify.ir').text
print('IP address is: {}'.format(ip))

R

ip <- readLines("https://ipify.ir", warn = FALSE)

cat("IP address is:", ip, "\n")

Ruby

require "net/http"

ip = Net::HTTP.get(URI("https://ipify.ir"))
puts "IP address is: " + ip

Rust

// cargo add reqwest --features blocking
use reqwest::blocking::get;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let ip = get("https://ipify.ir")?.text()?;
    println!("IP address is: {}", ip);
    Ok(())
}

Scala

import scala.io.Source

object Main extends App {
  val ip = Source.fromURL("https://ipify.ir").mkString
  println(s"IP address is: $ip")
}

Swift

import Foundation

let url = URL(string: "https://ipify.ir")

do {
    if let url = url {
        let ipAddress = try String(contentsOf: url)
        print("IP address is: " + ipAddress)
    }
} catch let error {
    print(error)
}

TypeScript

const response = await fetch("https://ipify.ir?format=json");
const { ip } = (await response.json()) as { ip: string };

console.log(`IP address is: ${ip}`);

V

import net.http

fn main() {
    resp := http.get('https://ipify.ir') or { panic(err) }
    println('IP address is: ${resp.body}')
}

Zig

const std = @import("std");
const http = std.http;

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    defer _ = gpa.deinit();
    const allocator = gpa.allocator();

    var client = http.Client{ .allocator = allocator };
    defer client.deinit();

    const uri = try std.Uri.parse("https://ipify.ir");
    var req = try client.open(.GET, uri, .{
        .server_header_buffer = try allocator.alloc(u8, 4096),
    });
    defer req.deinit();

    try req.send();
    try req.finish();
    try req.wait();

    var body = std.ArrayList(u8).init(allocator);
    defer body.deinit();
    try req.reader().readAllArrayList(&body, 1024);

    std.debug.print("IP address is: {s}", .{body.items});
}
کوتاه و کاربردی

پرسش‌های متداول

آدرس IP عمومی چیست؟

آدرس IP عمومی، نشانی اتصال شما در اینترنت است. این نشانی ممکن است میان چند دستگاه مشترک باشد یا با تغییر شبکه، استفاده از پراکسی یا VPN تغییر کند؛ لزوماً شناسهٔ یک دستگاه نیست.

تفاوت IPv4 و IPv6 چیست؟

IPv4 از آدرس‌های ۳۲ بیتی و IPv6 از آدرس‌های ۱۲۸ بیتی استفاده می‌کند. نسخهٔ ششم فضای آدرس بسیار بزرگ‌تری دارد. نوع آدرس نمایش‌داده‌شده به اتصال شما و پشتیبانی شبکه بستگی دارد.

آیا استفاده از ipify رایگان است؟

بله، استفاده از این سرویس رایگان است و به ثبت‌نام یا کلید API نیاز ندارد. می‌توانید در پروژه‌های شخصی و تجاری از آن استفاده کنید.

چرا شهر یا کشور من دقیق نیست؟

اطلاعات مکانی از پایگاه دادهٔ آدرس‌های IP به دست می‌آید، نه از موقعیت دستگاه شما. شبکهٔ اپراتور، پراکسی یا VPN می‌تواند باعث نمایش موقعیتی متفاوت شود.