💡 چرا ipify را انتخاب کنیم؟
سادگی و سرعت
ipify سریعترین و سادهترین راه برای دریافت آدرس IP عمومی شماست. بدون نیاز به کلید API یا ثبتنام.
رایگان برای همیشه
این سرویس کاملاً رایگان است و برای استفادههای فردی و تجاری در مقیاس بزرگ قابل استفاده میباشد.
بدون محدودیت نرخ
بر خلاف بسیاری از سرویسها، ما محدودیت سختگیرانهای برای تعداد درخواستها نداریم و برای استفادههای زیاد مناسبیم.
🛠️ نحوه استفاده
دریافت IPv4 به صورت متن خام
$ curl ipify.ir
5.112.98.253
دریافت IPv6
$ curl -6 ipify.ir
2a07:3903:1:3::26e
دریافت به صورت JSON
$ curl ipify.ir?format=json
{"ip":"5.112.98.253"}
دریافت به صورت JSONP
$ curl ipify.ir?format=json
callback({"ip":"5.112.98.253"});
$ curl ipify.ir?format=jsonp&callback=getip
getip({"ip":"5.112.98.253"});
🛠️ زبان های برنامه نویسی
Bash
#!/bin/bash
ip=$(curl -s https://ipify.ir)
echo "IP address is: $ip"
Python
# pip install requests
from requests import get
ip = get('https://ipify.ir').text
print('IP address is: {}'.format(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)
}
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>
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);
});
});
jQuery
<script type="application/javascript">
$(function() {
$.getJSON("https://ipify.ir?format=jsonp&callback=?",
function(json) {
document.write("IP address is: ", json.ip);
}
);
});
</script>
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);
}
}
}
Ruby
require "net/http"
ip = Net::HTTP.get(URI("https://ipify.ir"))
puts "IP address is: " + ip
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;
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();
}
Elixir
:inets.start
{:ok, {_, _, inet_addr}} = :httpc.request('http://ipify.ir')
:inets.stop
PowerShell
$ip = Invoke-RestMethod -Uri 'https://ipify.ir?format=json'
"IP address is: $($ip.ip)"
Lua
socket_http = require "http.compat.socket"
body = assert(socket_http.request("https://ipify.ir"))
print(body)
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)
}
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");
}
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(())
}
Zig
const std = ("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 (Internet Protocol) یک شناسه عددی منحصر به فرد است که به هر دستگاه متصل به اینترنت اختصاص داده میشود. این آدرس برای شناسایی و ارتباط بین دستگاهها در شبکه استفاده میشود.
تفاوت IPv4 و IPv6 چیست؟
IPv4 از آدرسهای 32 بیتی (مانند 192.168.1.1) استفاده میکند، در حالی که IPv6 از آدرسهای 128 بیتی (مانند 2001:0db8:85a3::8a2e:0370:7334) استفاده میکند. IPv6 برای حل مشکل کمبود آدرسهای IPv4 طراحی شده است.
آیا استفاده از ipify رایگان است؟
بله، ipify کاملاً رایگان است و هیچ محدودیتی برای تعداد درخواستها ندارد. میتوانید در پروژههای شخصی یا تجاری خود از آن استفاده کنید.