logo








Ringkasan
Cara Penggunaan
Dapatkan Proksi
Produk
Proksi
  • Proksi Perumahan Socks5
  • Proksi Perumahan
  • Paket Proxy Tak Terbatas
  • Proksi Pusat Data Khusus
  • Proksi Perumahan Statis
  • Memutar Proxy ISP
Menu
Akun saya
dompet ABC NEW
Pertukaran CDK Perusahaan
Rencana Rujukan 10% Komisi
Dokumentasi dan bantuan
  • Dokumentasi
  • Panduan pengguna
  • Video tutorial







vip
Dapatkan Proksi
User& Pass Auth
API Extraction
Proxy Manager
Auth Account Management
IP Whitelist Configuration
Example

{{userInfo.flow_balance}}G

---

Rencana Proksi Perumahan(Lalu Lintas)
Isi ulang

{{userInfo.static_no_count}} IPs

---

IP yang tersedia

Rencana Perumahan Statis
Isi ulang

{{farmsDay(userInfo.pack_last_time)}}

---

Waktu yang Tersedia

Paket Tidak Terbatas(Lalu Lintas)
Isi ulang

{{userInfo.exclusive_balance}} IPs

---

IP yang tersedia

Proksi Pusat Data Khusus
Isi ulang

{{userInfo.flow_isp}}G

---

Memutar Proxy ISP
Isi ulang
Pembuat Proksi

Pemilihan kumpulan IP proxy

{{ item.label }}
Pilih proxy yang tepat atau pertahankan proxy acak posisi.

Wilayah

item.nilai item.nilai {{ item.label }}
Ini IP terakhir Anda: PORT
Tips:Jika default dipilih, maka akan cocok dengan server di wilayah tempat IP berada.

Alamat Proksi

Pilih IP

Metode pencarian lainnya

Sticky:Simpan alamat IP yang sama hingga 90 menit dengan sesi yang sulit.
Putar:Pilih sesi bergilir untuk mendapatkan IP baru pada masing-masing sesi meminta.

Modus IP

durasi IP (1-120 menit)

Negara

Kota

Anda dapat membuat dan mengalokasikan lalu lintas ke sub-akun dengan sendiri, atau langsung menggunakan akun utama Anda.

Sub pengguna

atau

Buat Pengguna

Nama belakang

Kata sandi

Perintah Tes

Salin tautan

Hasilkan Daftar Proksi

FORMAT PROKSI

KUANTITAS

PARAMETER ANTARMUKA
daerah
wajib

Identitas kumpulan proxy

wilayah
Tidak wajib

Wilayah, jangan mengisi alokasi campuran global default

st
Tidak wajib

Negara bagian, berisi beberapa negara, defaultnya adalah acak jika dibiarkan kosong

kota
Tidak wajib

Kota, defaultnya acak jika dibiarkan kosong

sidang
Tidak wajib

Konfigurasi ketika IP tetap diperlukan, ditentukan pengguna

Waktu Sesi
Tidak wajib

Digunakan bersama dengan sesi untuk mengonfigurasi waktu penuaan IP, naik hingga 120 menit

CONTOH

daerah-ID Kumpulan Proksi
[akun]-zona-abc:[kata sandi]
Contoh
#keriting -x ***.abcproxy.com:4951 -kamu "[akun]-zona-abc:[kata sandi]" ipinfo.io


wilayah-wilayah yang ditunjuk
[akun]-zona-abc-wilayah-kita:[kata sandi]
wilayah-kita Amerika
Contoh
#keriting -x ***.abcproxy.com:4951 -kamu "[akun]-zona-abc-wilayah-kita:[kata sandi]" ipinfo.io

st-negara bagian yang ditunjuk
[akun]-zona-abc-wilayah-kita-California:[kata sandi]
st-california Kalifornia
Contoh
#keriting -x ***.abcproxy.com::4951 -kamu "[akun]-zona-abc-wilayah-kita-California:[kata sandi]" ipinfo.io

kota-kota yang ditunjuk
[akun]-zona-abc-wilayah-kita-kota-california-New York:[kata sandi]
kota-newyorkNew York
Contoh
#keriting -x ***.abcproxy.com:4951 -kamu "[akun]-zona-abc-wilayah-kita-kota-california-New York:[kata sandi]" ipinfo.io

sidang-Memperbaiki ip ekspor
sed untuk menentukan bahwa Anda ingin memperbaiki IP keluar untuk jangka waktu tertentu waktu, tanpa menentukan default 5 menit
[akun]-zona-abc-wilayah-kita-california-kota-newyork-sesi-b5b36885:[kata sandi]
sidang
Contoh
#keriting -x ***.abcproxy.com:4951-kamu "[akun]-zona-abc-wilayah-kita-california-kota-newyork-sesi-b5b36885:[kata sandi]" ipinfo.io

SesWaktu- Tentukan IP keluar dengan durasi maksimal 120 menit
Digunakan dengan sesi untuk menentukan waktu keluar IP tetap untuk hidup
[akun]-zona-abc-wilayah-us-california-kota-newyork-sesi-b5b36885-SesTime-120:[kata sandi]
SesTime-120 120 menit
Contoh
#keriting -x ***.abcproxy.com:4951-kamu "[akun]-zona-abc-wilayah-us-california-kota-newyork-sesi-b5b36885-SesTime-120:[kata sandi]" ipinfo.io

Kembali

Daftar proksi

Hapus sebagian
tidak memilih memilih Nama
Tanggal pembuatan, waktu
Wilayah
Jenis sesi
Otentikasi dengan login+lulus
Nomor
Tindakan
tidak memilih memilih {{info.name}}
Sunting
Menyimpan
{{formatDateVue(info.create_time)}}
{{info.region}}{{info.state !="" ? "-"+info.state : "" }}{{info.city !="" ? "-"+info.city : "" }}
{{info.ip_mode == "rotating" ? info.ip_mode : info.ip_mode +"-"+ info.ip_duration }}
{{info.sub_username}}:{{info.password}}
{{info.quantity}}
Ekspor
Menghapus

{{userInfo.flow_balance}}G

---

Rencana Proksi Perumahan(Lalu Lintas)
Isi ulang

{{userInfo.static_no_count}} IPs

---

IP yang tersedia

Rencana Perumahan Statis
Isi ulang

{{farmsDay(userInfo.pack_last_time)}}

---

Waktu yang Tersedia

Paket Tidak Terbatas(Lalu Lintas)
Isi ulang

{{userInfo.exclusive_balance}} IPs

---

IP yang tersedia

Proksi Pusat Data Khusus
Isi ulang
Pembuat Proksi

model

Kuantitas ekstraksi

Pilih wilayah

Negara Negara

{{info.label}}

Lihat lebih banyak >

Pilih wilayah

Pilih wilayah

Sticky: Pertahankan alamat IP yang sama dalam sesi tempel selama 5 menit.
Putar: Pilih sesi rotasi untuk mendapatkan IP baru untuk setiap permintaan.

Modus IP

Pengaturan lainnya

PROTOKOL

FORMAT

PEMISAH


Pilih wilayah

Populer

Negara Negara

{{info.label}}

Yang lain

{{info.label}}({{info.value}})
Mengonfirmasi

Perintah Tes

DSUKLARASI PARAMETER API
nomor

MENGHITUNG

wilayah

Negara

protokol

Protokol

tipe kembali

Format : TXT JSON

lt

Pembatas ( 1:\ R \ n2:/ saudara 3:\R 4:\n5:\t6: Pembatas khusus )

st

Pembatas khusus

CONTOH

{
    "kode" : 0,
    "kesuksesan": BENAR,
    "pesan": "0",
    "meminta_aku p": "alamat permintaan",
    "data": [
    {"aku p": "47.244.192.12","pelabuhan": 15698}
   ]
}

ANNOTASI HASIL
kode

0 menunjukkan keberhasilan dan saya menunjukkan kegagalan

aku p

AKU P

kesuksesan

Benar menunjukkan keberhasilan dan salah menunjukkan kegagalan

pelabuhan

pelabuhan

Manajemen akun otentikasi

Nama akun Kata sandi Batas penggunaan lalu lintas Konsumsi lalu lintas Tambahkan waktu Status Komentar Beroperasi
    menutup

    Kiat

    Setelah menghapus akun, kata sandi akun menjadi tidak valid, konfirmasi penghapusan?

    Membatalkan
    Mengonfirmasi
    menutup

    Akun Otentikasi

    * Nama akun
    * Kata sandi
    Batas lalu lintas G
    Komentar
    Status

    Disable Enable

    Enable Disabled

    Membatalkan
    Mengonfirmasi

    Konfigurasi Daftar Putih IP

    IP saat ini ***.***.***.***
    + Tambahkan Daftar Putih
    AKU P Tambahkan Waktu Komentar negara Beroperasi

      Antarmuka API Daftar Putih

      Tujuan Tautan API
      Tambahkan Daftar Putih
      Hapus Daftar Putih
      Lihat Daftar Putih
      menutup

      Kiat

      Setelah menghapus IP, IP menjadi tidak valid, konfirmasi penghapusan?

      Membatalkan
      Mengonfirmasi
      menutup

      Tambahkan Daftar Putih

      * Alamat IP
      Komentar
      Membatalkan
      Mengonfirmasi

      Mengalami masalah? Hubungi kami

      Contoh

      
      
      
                #include "stdafx.h"
                #include "curl/curl.h"
                #pragma comment(lib, "libcurl.lib")
                static size_t write_buff_data(char *buffer, size_t size, size_t nitems, void *outstream)
                {
                  memcpy(outstream, buffer, nitems*size);
                  return nitems*size;
                }
                
                int GetUrlHTTP(char *url, char *buff)
                {
                  CURL *curl;
                  CURLcode res;
                  curl = curl_easy_init();
                  if (curl)
                  {
                    curl_easy_setopt(curl, CURLOPT_PROXY,"http://host:port");
                    curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "users:password");
                    curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
                    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);
                    curl_easy_setopt(curl, CURLOPT_URL, url);
                    curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
                    curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
                    curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);
                
                    res = curl_easy_perform(curl);
                    curl_easy_cleanup(curl);
                    if (res == CURLE_OK){
                      return res;
                    }else {
                      printf("error:%d\n", res);
                      MessageBox(NULL, TEXT("Get Ip Error"), TEXT("Help"), MB_ICONINFORMATION | MB_YESNO);
                    }
                  }
                  return res;
                }
                
                int GetUrlSocks5(char *url, char *buff)
                {
                  CURL *curl;
                  CURLcode res;
                  curl = curl_easy_init();
                  if (curl)
                  {
                    curl_easy_setopt(curl, CURLOPT_PROXY, "socks5://host:port");
                    curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "users:password");
                    curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
                    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);
                    curl_easy_setopt(curl, CURLOPT_URL, url);
                    curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
                    curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
                    curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);
                    res = curl_easy_perform(curl);
                    curl_easy_cleanup(curl);
                    if (res == CURLE_OK) {
                      return res;
                    }
                    else {
                      printf("error:%d\n", res);
                      MessageBox(NULL, TEXT("Get Ip Error"), TEXT("Help"), MB_ICONINFORMATION | MB_YESNO);
                    }
                  }
                  return res;
                }
                
                int GetUrl(char *url, char *buff)
                {
                  CURL *curl;
                  CURLcode res;
                  curl = curl_easy_init();
                  if (curl)
                  {
                    curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
                    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);
                    curl_easy_setopt(curl, CURLOPT_URL, url);
                    curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
                    curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
                    curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);
                    res = curl_easy_perform(curl);
                    curl_easy_cleanup(curl);
                    if (res == CURLE_OK)
                    {
                      return res;
                    }
                    else {
                      printf("error:%d\n", res);
                      MessageBox(NULL, TEXT("Get Ip Error"), TEXT("Help"), MB_ICONINFORMATION | MB_YESNO);
                    }
                  }
                  return res;
                }
                
                int main()
                {
                  char *buff=(char*)malloc(1024*1024);
                  memset(buff, 0, 1024 * 1024);
                  //Test 1
                  GetUrl("http://ipinfo.io", buff);
                  printf("No Proxy:%s\n", buff);
                  //Test 2
                  memset(buff, 0, 1024 * 1024);
                  GetUrlHTTP("http://ipinfo.io", buff);
                  printf("Proxy By Http:%s\n", buff);
                  //Test 3
                  memset(buff, 0,1024 * 1024);
                  GetUrlSocks5("http://ipinfo.io", buff);
                  printf("Proxy by socks5:%s\n", buff);
                
                  Sleep(1000 * 1000);
                  free(buff);
                    return 0;
                }
                
      
      
      package main
      
      
      
      import (
            
          "context"
            
          "fmt"
            
          "golang.org/x/net/proxy"
            
          "io/ioutil"
            
          "net"
            
          "net/http"
            
          "net/url"
            
          "strings"
            
          "time"
            
      )
            
            
            
      var testApi = "https://api.myip.la/en?json"
            
            
            
      func main() {
            
          getMyIp()
            
            
            
          //Accounts
            
          var proxyIP = "ip:port"
            
          go httpProxy(proxyIP, "", "")
            
          go Socks5Proxy(proxyIP, "", "")
            
          time.Sleep(time.Minute)
            
      }
            
            
            
      func getMyIp() {
            
          rsp, err := http.Get("https://api.myip.la/en?json")
            
          if err != nil {
            
              fmt.Println("Failed to get native IP", err.Error())
            
              return
            
          }
            
          defer rsp.Body.Close()
            
          body, err := ioutil.ReadAll(rsp.Body)
            
          if err != nil {
            
              fmt.Println(err.Error())
            
              return
            
          }
            
          fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), "local ip:", string(body))
            
            
            
      }
            
            
            
      //http proxy
            
      func httpProxy(proxyUrl, user, pass string) {
            
          defer func() {
            
              if err := recover(); err != nil {
            
        fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), "http", "Return information:", err)
            
              }
            
          }()
            
          urli := url.URL{}
            
            
            
          if !strings.Contains(proxyUrl, "http") {
            
              proxyUrl = fmt.Sprintf("http://%s", proxyUrl)
            
          }
            
            
            
          urlProxy, _ := urli.Parse(proxyUrl)
            
          if user != "" && pass != "" {
            
              urlProxy.User = url.UserPassword(user, pass)
            
          }
            
            
            
          client := &http.Client{
            
              Transport: &http.Transport{
            
        Proxy: http.ProxyURL(urlProxy),
            
              },
            
          }
            
          rqt, err := http.NewRequest("GET", testApi, nil)
            
          if err != nil {
            
              panic(err)
            
              return
            
          }
            
          response, err := client.Do(rqt)
            
          if err != nil {
            
              panic(err)
            
              return
            
          }
            
            
            
          defer response.Body.Close()
            
          body, _ := ioutil.ReadAll(response.Body)
            
          fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【http success】", "Return information:", response.Status, string(body))
            
            
            
          return
            
      }
            
            
            
      //Socks5 proxy
            
      func Socks5Proxy(proxyUrl, user, pass string) {
            
            
            
          defer func() {
            
              if err := recover(); err != nil {
            
        fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, " Return information:", err)
            
              }
            
          }()
            
            
            
          var userAuth proxy.Auth
            
          if user != "" && pass != "" {
            
              userAuth.User = user
            
              userAuth.Password = pass
            
          }
            
          dialer, err := proxy.SOCKS5("tcp", proxyUrl, &userAuth, proxy.Direct)
            
          if err != nil {
            
              panic(err)
            
          }
            
          httpClient := &http.Client{
            
              Transport: &http.Transport{
            
        DialContext: func(ctx context.Context, network, addr string) (conn net.Conn, err error) {
            
            return dialer.Dial(network, addr)
            
        },
            
              },
            
              Timeout: time.Second * 10,
            
          }
            
            
            
          //Request Network
            
          if resp, err := httpClient.Get(testApi); err != nil {
            
              panic(err)
            
          } else {
            
              defer resp.Body.Close()
            
              body, _ := ioutil.ReadAll(resp.Body)
            
              fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【socks5 success】", " Return information:", string(body))
            
          }
            
      }
      
      
      #!/usr/bin/env node
      
      require('request-promise')({
      
          url: 'https://ipinfo.io',
      
          proxy: 'http://ip:port',
          
          })
      
      .then(function(data){ console.log(data); },
      
          function(err){ console.error(err); });
            
      
      
      <?php
      
      // Target page to visit
            
      $targetUrl = "www.google.com";
            
      // proxy server
            
      $proxyServer = "http://{{ip}:{{domain}}";
            
            
            
      // Tunnel Identity Information
            
      $ch = curl_init();
            
      curl_setopt($ch, CURLOPT_URL, $targetUrl);
            
      curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
            
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            
            
            
      // Setting up a proxy server
            
      curl_setopt($ch, CURLOPT_PROXYTYPE, 0); //http
            
      // curl_setopt($ch, CURLOPT_PROXYTYPE, 5); //sock5
            
      curl_setopt($ch, CURLOPT_PROXY, $proxyServer);
            
            
            
      // Set Tunnel Verification Information
            
      curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
            
      curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)");
            
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
            
      curl_setopt($ch, CURLOPT_TIMEOUT, 5);
            
      curl_setopt($ch, CURLOPT_HEADER, true);
            
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            
      $result = curl_exec($ch);
            
      $err = curl_error($ch);
            
            
            
      curl_close($ch);
            
            
            
      var_dump($err);
            
      var_dump($result);
      
      
      package demo;
      
      
      
          import okhttp3.OkHttpClient;
      
          import okhttp3.Request;
      
      
      
          import java.io.IOException;
      
          import java.net.InetSocketAddress;
      
          import java.net.Proxy;
      
      
      
          /**
      
          * compile 'com.squareup.okhttp3:okhttp:3.10.0'
      
          */
      
          class ApiProxyJava {
      
              public static void main(String[] args) throws IOException {
      
        testHttpWithOkHttp();
      
        testSocks5WithOkHttp();
      
              }
      
      
      
              public static void testHttpWithOkHttp() throws IOException {
      
        String url = "http://api.myip.la/en?json";
      
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("ip", 2000));
      
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).build();
      
      
      
        Request request = new Request.Builder().url(url).build();
      
        okhttp3.Response response = client.newCall(request).execute();
      
        String responseString = response.body().string();
      
        System.out.println(responseString);
      
              }
      
      
      
              public static void testSocks5WithOkHttp() throws IOException {
      
        String url = "http://api.myip.la/en?json";
      
        Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("ip", 8080));
      
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).build();
      
      
      
        Request request = new Request.Builder().url(url).build();
      
        okhttp3.Response response = client.newCall(request).execute();
      
        String responseString = response.body().string();
      
        System.out.println(responseString);
      
              }
      
          }
      
            
      
      
      # coding=utf-8
      
      # !/usr/bin/env python
            
      import json
            
      import threading
            
      import time
            
      import requests as rq
            
            
            
      headers = {
            
          "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0",
            
          "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
            
          "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
            
          "Accept-Encoding": "gzip, deflate, br"
            
      }
            
      testUrl = 'https://api.myip.la/en?json'
            
            
            
            
            
      # The core business
            
      def testPost(host, port):
            
          proxies = {
            
              'http': 'http://{}:{}'.format(host, port),
            
              'https': 'http://{}:{}'.format(host, port),
            
          }
            
          res = ""
            
            
            
          while True:
            
              try:
            
        res = rq.get(testUrl, proxies=proxies, timeout=5)
            
        # print(res.status_code)
            
        print(res.status_code, "***", res.text)
            
        break
            
              except Exception as e:
            
        print(e)
            
        break
            
            
            
          return
            
            
            
            
            
      class ThreadFactory(threading.Thread):
            
          def __init__(self, host, port):
            
              threading.Thread.__init__(self)
            
              self.host = host
            
              self.port = port
            
            
            
          def run(self):
            
              testPost(self.host, self.port)
            
            
            
            
            
      # Extract the link to the proxy  Return value of json type
            
      tiqu = 'Extract the link'
            
            
            
      while 1 == 1:
            
          # Extract 10 at a time and put them into the thread
            
          resp = rq.get(url=tiqu, timeout=5)
            
          try:
            
              if resp.status_code == 200:
            
        dataBean = json.loads(resp.text)
            
              else:
            
        print("failure")
            
        time.sleep(1)
            
        continue
            
          except ValueError:
            
              print("failure")
            
              time.sleep(1)
            
              continue
            
          else:
            
              # Parsing json arrays
            
              print("code=", dataBean["code"])
            
              code = dataBean["code"]
            
              if code == 0:
            
        threads = []
            
        for proxy in dataBean["data"]:
            
            threads.append(ThreadFactory(proxy["ip"], proxy["port"]))
            
        for t in threads:  # Open the thread
            
            t.start()
            
            time.sleep(0.01)
            
        for t in threads:  # Blocking threads
            
            t.join()
            
          # break
            
          time.sleep(1)
            
      
      Proksi ABC

      Pembayaran

      Lokasi Pembaruan:    KITA*5 , inggris*10     Pilih kembali
      Pilih waktu perpanjangan:
        Total: $100
        Diskon (0% mati) $4

        PUNYA KODE KUPON?

        Menerapkan

        Pilih Metode Pembayaran Anda

        ABC S5 Proxy Dipercaya oleh Ribuan Bisnis Sejak 2018 Ideal untuk Akses Aman ke Konten Lokal dan Solusi Perayapan Web Profesional.

        contact

        Hubungi kami

        Nama lengkap

        Diperlukan

        Nama perusahaan

        Nama perusahaan wajib diisi

        Alamat email perusahaan

        Email harus berupa alamat email yang valid

        No Telepon.

        ABCProxy +1

        Nomor telepon diperlukan

        ABCProxy akan memproses data Anda untuk mengelola pertanyaan Anda dan memberi tahu Anda tentang layanan kami. Untuk informasi lebih lanjut, kunjungi kami Kebijakan pribadi.