مستنداتنمونه‌کدها
استفاده از سرویس

نمونه‌کدها

زبان برنامهٔ خود را انتخاب کنید. هر نمونه یک IP را جست‌وجو می‌کند و پاسخ را در خروجی نشان می‌دهد.

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

جاوااسکریپت و تایپ‌اسکریپت

این نمونه در محیط Node.js با پشتیبانی از fetch اجرا می‌شود. آن را با نام lookup.mjs ذخیره کنید و با node lookup.mjs اجرا کنید. همین کد در برنامهٔ تایپ‌اسکریپت سمت سرور نیز قابل استفاده است.

JavaScript / TypeScript
const key = process.env.TARKAV_API_KEY;
if (!key) throw new Error('TARKAV_API_KEY is required');

const response = await fetch('https://api.tarkav.ir/v1/lookup', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${key}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ ip: '2.144.0.1' }),
  signal: AbortSignal.timeout(10_000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());

پایتون

از کتابخانهٔ استاندارد Python 3 استفاده می‌کند و بستهٔ اضافه نمی‌خواهد. آن را در lookup.py ذخیره کنید و با python3 lookup.py اجرا کنید. پاسخ ناموفق، خطای HTTPError ایجاد می‌کند.

Python
import json
import os
import urllib.request

request = urllib.request.Request(
    'https://api.tarkav.ir/v1/lookup',
    data=json.dumps({'ip': '2.144.0.1'}).encode(),
    headers={
        'Authorization': f"Bearer {os.environ['TARKAV_API_KEY']}",
        'Content-Type': 'application/json',
    },
    method='POST',
)
with urllib.request.urlopen(request, timeout=10) as response:
    print(json.load(response))

گو

فایل را با نام lookup.go ذخیره کنید و با go run lookup.go اجرا کنید. به بستهٔ اضافه نیاز ندارد.

Go
package main

import (
  "fmt"
  "io"
  "net/http"
  "os"
  "strings"
  "time"
)

func main() {
  key := os.Getenv("TARKAV_API_KEY")
  if key == "" { panic("TARKAV_API_KEY is required") }
  req, err := http.NewRequest("POST",
    "https://api.tarkav.ir/v1/lookup",
    strings.NewReader(`{"ip":"2.144.0.1"}`))
  if err != nil { panic(err) }
  req.Header.Set("Authorization", "Bearer " + key)
  req.Header.Set("Content-Type", "application/json")
  client := &http.Client{Timeout: 10 * time.Second}
  res, err := client.Do(req)
  if err != nil { panic(err) }
  defer res.Body.Close()
  if res.StatusCode != http.StatusOK { panic(res.Status) }
  body, err := io.ReadAll(res.Body)
  if err != nil { panic(err) }
  fmt.Println(string(body))
}

پی‌اچ‌پی

به افزونهٔ cURL نیاز دارد. فایل را با نام lookup.php ذخیره و با php lookup.php اجرا کنید.

PHP
<?php
$key = getenv('TARKAV_API_KEY');
if (!$key) throw new RuntimeException('TARKAV_API_KEY is required');

$curl = curl_init('https://api.tarkav.ir/v1/lookup');
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode(['ip' => '2.144.0.1']),
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $key,
        'Content-Type: application/json',
    ],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
]);
$body = curl_exec($curl);
if ($body === false) throw new RuntimeException(curl_error($curl));
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($status !== 200) throw new RuntimeException('HTTP ' . $status);
echo $body;

راست

در پروژهٔ خود وابستگی‌های زیر را در بخش dependencies فایل Cargo.toml قرار دهید. سپس نمونه را در src/main.rs بگذارید و با cargo run اجرا کنید.

[dependencies]
reqwest = { version = "0.12", features = ["blocking", "json"] }
serde_json = "1"
Rust
use std::{env, error::Error, time::Duration};

fn main() -> Result<(), Box<dyn Error>> {
    let key = env::var("TARKAV_API_KEY")?;
    let client = reqwest::blocking::Client::builder()
        .timeout(Duration::from_secs(10))
        .build()?;
    let response = client
        .post("https://api.tarkav.ir/v1/lookup")
        .bearer_auth(key)
        .json(&serde_json::json!({"ip": "2.144.0.1"}))
        .send()?
        .error_for_status()?;
    println!("{}", response.text()?);
    Ok(())
}

برای استفاده در برنامهٔ واقعی، پاسخ را بر اساس معنی فیلدها پردازش کنید و برای درخواست ناموفق، راهنمای رفع خطاها را در نظر بگیرید.

هنوز به کمک نیاز دارید؟ با ما در تماس باشید