ur
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
Français
भारतीय
Türkçe
한국인
Italiano
Gaeilge
Indonesia
Polski Axios ایک جاوا اسکرپٹ لائبریری ہے جو HTTP درخواستیں بھیجنے کے لیے استعمال ہوتی ہے، جو غیر متزامن ڈیٹا پروسیسنگ، ردعمل اور خرابی ہینڈلنگ کی حمایت کرتی ہے اور اسے کلائنٹ ایپلیکیشنز اور Node.js پر مبنی سرورز دونوں میں آسانی سے ضم کیا جا سکتا ہے۔ عملی منظرناموں میں، خاص طور پر جب بڑی تعداد میں درخواستوں سے نمٹنا پڑتا ہے یا جب مواد تک رسائی محدود ہوتی ہے، تو اکثر Axios میں پراکسی سیٹ کرنا ضروری ہو جاتا ہے۔ درمیانی سرورز کلائنٹ کا IP ایڈریس تبدیل کرنے اور درخواستوں کو درمیانی نوڈ کے ذریعے بھیجنے کی اجازت دیتے ہیں۔ چونکہ Axios پراکسی کے استعمال کے لیے درست تشکیل اور کنکشن آرکیٹیکچر کی سمجھ ضروری ہے، یہ گائیڈ HTTP(S) اور SOCKS پروٹوکولز کو جوڑنے کے طریقے، توثیق کی تفصیلات، ایجنٹ کنفیگریشن کے ساتھ ساتھ عام غلطیوں اور انہیں ٹھیک کرنے کے طریقے پیش کرتا ہے۔
یہ مندرجہ ذیل منظرناموں میں استعمال ہوتا ہے:
صحیح طریقے سے تشکیل شدہ درمیانی نوڈز کے ساتھ Axios کا استعمال ان منظرناموں کو عملی جامہ پہناتا ہے۔ تاہم، یہ سمجھنا ضروری ہے کہ لائبریری بذاتِ خود صرف HTTP درخواستیں بھیجنے کا ایک آلہ ہے۔ بلاکس کو بائی پاس کرنے، جغرافیائی طور پر محدود مواد تک رسائی اور ٹریفک کا انتظام کرنے کی صلاحیت درج ذیل پر منحصر ہے:
Axios مندرجہ ذیل اقسام کی حمایت کرتا ہے جو پروٹوکول پر منحصر ہیں:
انضمام کے لیے، آپ کو یہ کرنا ہوگا:
اہم: لائبریری SSH، FTP، Shadowsocks یا اسی طرح کے پروٹوکول کی حمایت نہیں کرتی۔ ان کے استعمال کے لیے الگ ٹولز استعمال کرنے ہوں گے یا آپریٹنگ سسٹم کی سطح پر ٹنلنگ کو کنفیگر کرنا ہوگا۔
سیٹ اپ کرنے سے پہلے کئی تکنیکی پہلوؤں پر غور کرنا ضروری ہے: کون سا پروٹوکول استعمال ہوگا، کیا توثیق درکار ہے، اور کیا روٹیشن کی ضرورت ہے۔ ذیل میں مختلف کنکشن طریقوں کے لیے مرحلہ وار گائیڈ دی گئی ہے۔
Axios HTTP پراکسی کو کنفیگر کرنے سے پہلے، آپ کو کام کرنے والے ماحول کو صحیح طور پر تیار کرنا ہوگا۔
نوٹ: کمانڈز کو OS ٹرمینل (CMD، PowerShell، bash) یا کسی IDE جیسے Visual Studio Code کے مربوط ٹرمینل کے اندر چلایا جانا چاہیے۔ درست عمل درآمد کے لیے ضروری ہے کہ موجودہ ورکنگ ڈائریکٹری پروجیکٹ کے روٹ فولڈر کے مطابق ہو۔
mkdir proxy-setup-axios
cd proxy-setup-axios
npm init -y
npm install axios
echo>app.js
"scripts": {
"start": "node app.js"
}
اہم: package.json فائل کو کسی بھی کوڈ ایڈیٹر یا حتیٰ کہ نوٹ پیڈ میں بھی کھولا جا سکتا ہے۔ ایڈیٹنگ کرتے وقت، نحو کے اصولوں پر احتیاط سے عمل کریں: کوٹیشن مارکس، بریکٹس یا کولنز کو نہ ہٹائیں اور نہ ہی تبدیل کریں، کیونکہ اس سے عمل درآمد کی غلطیاں ہوں گی۔
npm start
اگر تمام اقدامات صحیح طریقے سے مکمل ہو گئے ہیں، تو ایپلیکیشن کامیابی سے لانچ ہوگی چاہے کنفیگریشن فائل خالی ہو۔ اس صورت میں، پروگرام صرف بند ہو جائے گا بغیر کسی اضافی آؤٹ پٹ کے۔ یہ رویہ متوقع ہے اور اس بات کی نشاندہی کرتا ہے کہ فائل میں ابھی کوئی قابلِ عمل کوڈ موجود نہیں ہے، لیکن ماحول صحیح طور پر سیٹ اپ ہو گیا ہے۔
جب اسٹیٹک حل استعمال کیا جاتا ہے تو تمام درخواستیں ایک ہی IP ایڈریس کے ذریعے بھیجی جاتی ہیں۔ یہ طریقہ اس وقت لاگو ہوتا ہے جب روٹیشن کی ضرورت نہ ہو۔
Axios HTTPS پراکسی سے جڑنے کے لیے مندرجہ ذیل کنفیگریشن استعمال کریں:
axios.get(URL, {
proxy: {
protocol: 'http',
host: '82.211.7.97',
port: 59100
}
})
اگر درمیانی سرور کو تصدیق کی ضرورت ہو تو auth بلاک شامل کریں:
auth: {
username: 'proxyUser',
password: 'proxyPass'
}
httpbin.org سروس پر درخواست کو ہینڈل کرنے کے ساتھ مکمل مثال:
const axios = require('axios');
async function requestThroughProxy() {
try {
const response = await axios.get('https://httpbin.org/ip', {
proxy: {
protocol: 'http',
host: '82.211.7.97',
port: 59100,
auth: {
username: 'proxyUser',
password: 'proxyPass'
}
}
});
console.log('Proxy IP:', response.data);
} catch (error) {
console.error('Request failed:', error.message);
}
}
requestThroughProxy();
try/catch بلاک کو درخواست کے دوران ممکنہ غلطیوں کو ہینڈل کرنے کے لیے استعمال کیا جاتا ہے۔ اس مثال میں، درخواست https://httpbin.org/ip پر بھیجی جاتی ہے، جو کلائنٹ کا موجودہ IP ایڈریس واپس کرتی ہے۔ اگر پراکسی دستیاب نہ ہو یا درخواست ناکام ہو جائے تو catch بلاک استثنا کو روک لیتا ہے اور ایک خرابی پیغام ظاہر کرتا ہے۔
جب متعدد درخواستیں ایک ہی IP کے ذریعے بھیجی جاتی ہیں تو ہدفی وسیلے کے ذریعہ بلاک ہونے کا خطرہ بڑھ جاتا ہے۔ اس سے بچنے کے لیے اکثر IP روٹیشن کی حمایت کے ساتھ رہائشی پراکسی استعمال کیے جاتے ہیں۔ ایسے حل زیادہ سطح کا ماسکنگ فراہم کرتے ہیں اور لوڈ کو یکساں طور پر تقسیم کرنے کی اجازت دیتے ہیں۔ عملی طور پر، یہ پہلے سے کنفیگر شدہ IP ایڈریس پول بنانے اور کوڈ میں پراکسیز کو تصادفی یا تسلسل کے ساتھ منتخب کرنے کے طریقہ کار کے ذریعے حاصل کیا جاتا ہے۔
http-proxy-agent پیکج کا استعمال کرتے ہوئے تصادفی IP انتخاب کی ایک مثال یہ ہے:
const axios = require('axios');
const HttpProxyAgent = require('http-proxy-agent');
// Proxy list with authentication
const proxyList = [
'http://user1:pass1@82.211.7.97:59100',
'http://user2:pass2@82.211.7.97:59101',
'http://user3:pass3@82.211.7.97:59102'
];
// Function to randomly select a proxy
function getRandomProxy() {
const index = Math.floor(Math.random() * proxyList.length);
return proxyList[index];
}
// Sending multiple requests with IP rotation
(async () => {
for (let i = 0; i < 5; i++) {
const proxy = getRandomProxy();
const agent = new HttpProxyAgent(proxy);
try {
const response = await axios.get('https://api.ipify.org?format=json', {
httpAgent: agent,
httpsAgent: agent,
timeout: 3000
});
console.log(`Used proxy ${proxy} -- IP:`, response.data.ip);
} catch (err) {
console.error(`Proxy ${proxy} failed:`, err.message);
}
}
})();
اس مثال میں، ہر درخواست Axios کے لیے دی گئی فہرست سے تصادفی طور پر منتخب کردہ پراکسی ایڈریس استعمال کرتی ہے۔ سروس https://api.ipify.org?format=json بیرونی IP واپس کرتی ہے، جو یہ تصدیق کرنے کی اجازت دیتی ہے کہ کنکشن صحیح طریقے سے قائم ہے۔ کسی خرابی کی صورت میں (جیسے دستیاب نہ ہونے والا سرور یا غلط توثیق کی اسناد)، catch بلاک استثنا کو روک لیتا ہے اور ایک خرابی پیغام دکھاتا ہے۔
SOCKS5 کا استعمال اس وقت درست ہوتا ہے جب نیٹ ورک فلٹرز کو بائی پاس کرنا ہو، محدود APIs کے ساتھ کام کرنا ہو، اور ایسے منظرنامے ہوں جن میں غیر معیاری ٹریفک بشمول DNS درخواستوں کی منتقلی درکار ہو۔
Axios socks5 پراکسی کے ساتھ کام کرنے کے لیے socks-proxy-agent پیکج استعمال کرنے کی سفارش کی جاتی ہے۔ یہ پیکج اس قسم کے درمیانی کو ایک پراکسی ایجنٹ کے ذریعے سپورٹ فراہم کرتا ہے جو لائبریری کے ساتھ بغیر رکاوٹ ضم ہوتا ہے۔
Axios پراکسی ایجنٹ انسٹال کرنا:
npm install axios socks-proxy-agent
Axios پراکسی کنفیگریشن:
const axios = require('axios');
const { SocksProxyAgent } = require('socks-proxy-agent');
// Intermediary server parameters
const proxy = {
host: '45.192.135.68',// IP-address
port: 50101,// Port
username: 'Username',// Username (if required)
password: 'Password'// Password(if required)
};
// Build proxy URL with authentication
const proxyUrl = `socks5://${proxy.username}:${proxy.password}@${proxy.host}:${proxy.port}`;
// Create SOCKS5 agent
const agent = new SocksProxyAgent(proxyUrl);
// Request through proxy in Axios
axios.get('https://api.ipify.org/?format=json', { httpsAgent: agent })
.then(response => {
console.log('Your IP:', response.data);
})
.catch(error => {
console.error('Connection error:', error.message);
});
اہم: اگر درمیانی کو توثیق کی ضرورت نہ ہو تو آپ کو proxyUrl بغیر صارف نام اور پاس ورڈ کے بنانا چاہیے:
const proxyUrl = `socks5://${proxy.host}:${proxy.port}`;
یہ چیک کرنے کے لیے کہ سب کچھ درست طریقے سے کام کر رہا ہے، آپ ایک ایسی سروس کو درخواست بھیج سکتے ہیں جو بیرونی IP ایڈریس واپس کرتی ہے، مثال کے طور پر:
axios.get('https://api.ipify.org?format=json', { httpsAgent: agent })
.then(response => {
console.log('Your IP:', response.data.ip);
})
.catch(error => {
console.error('Connection error:', error.message);
});
یہ آپ کو اس بات کی تصدیق کرنے کی اجازت دیتا ہے کہ درخواستیں درست طریقے سے پراکسی ہو رہی ہیں۔
درمیانی سرورز کے ساتھ Axios کا مؤثر استعمال سوچ سمجھ کر کنفیگریشن کا متقاضی ہے، جس میں درج ذیل اہم پہلوؤں کو مدنظر رکھنا ضروری ہے:
ان سفارشات پر عمل کرنے سے Axios پراکسی کی مستحکم کارکردگی یقینی بنتی ہے، حتیٰ کہ زیادہ لوڈ کے تحت بھی۔
Axios پراکسیز مختلف وجوہات کی بنا پر ناکام ہو سکتی ہیں، بنیادی طور پر Node.js میں پراکسیز کے ساتھ کام کرنے کی خصوصیات کی وجہ سے، جہاں درست کنفیگریشن اور پروٹوکول مطابقت انتہائی اہم ہے۔
وجہ: غلط IP ایڈریس یا پورٹ درج ہے، پراکسی سرور دستیاب نہیں ہے، یا کنکشن کو نیٹ ورک سطح پر فائر وال یا ہوسٹ سسٹم کے ذریعے بلاک کیا جا رہا ہے۔
حل:
curl -x http://username:password@proxy-host:port https://api.ipify.org
try {
await axios.get(url, { httpAgent });
} catch (err) {
if (err.code === 'ECONNREFUSED') {
// Switch to another IP
}
}
وجہ: درمیانی سرور ہدفی وسیلے سے غلط جواب واپس کر رہا ہے کیونکہ:
حل:
وجہ: درمیانی سرور SOCKS5 استعمال کر رہا ہے، جبکہ کنکشن HTTP یا HTTPS ایجنٹ کے ذریعے قائم کیا جا رہا ہے۔ Axios براہ راست پراکسیز کو سپورٹ نہیں کرتا، لہذا کنفیگریشن کا کلیدی عنصر درست ایجنٹ کا انتخاب ہے۔
حل:
استعمال کیے جانے والے پروٹوکول کی قسم کے مطابق درست ایجنٹ (http-proxy-agent، https-proxy-agent، socks-proxy-agent) سے جڑیں۔
const HttpsProxyAgent = require('https-proxy-agent');
const agent = new HttpsProxyAgent('http://user:pass@ip:port');
SOCKS5 کے لیے:
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5://user:pass@ip:port');
وجہ: غلط صارف نام یا پاس ورڈ، Proxy-Authorization ہیڈر کی کمی، یا غلط کنکشن اسٹرنگ فارمیٹ۔
حل:
کنکشن اسٹرنگ کی نحو چیک کریں: http://user:pass@ip:port ۔ یقینی بنائیں کہ ایجنٹ توثیق کے پیرامیٹرز درست طریقے سے منتقل کرتا ہے۔
const HttpsProxyAgent = require('https-proxy-agent');
const proxyUrl = 'http://username:password@82.211.9.160:50100';
const agent = new HttpsProxyAgent(proxyUrl);
Axios پراکسی کو کنفیگر کرنا گمنامی، لوڈ بیلنسنگ اور پابندیوں کو بائی پاس کرنے کے ساتھ کام کرنے کے لیے ایک ضروری قدم ہے۔ درخواستوں کی قابل اعتماد کارکردگی درست پراکسی ایجنٹ کنفیگریشن، مطابقت پذیر پروٹوکولز کے انتخاب اور سوچے سمجھے ایرر ہینڈلنگ کے ذریعے یقینی بنائی جاتی ہے۔ اسی وقت، پراکسی سرور کا معیار براہ راست ٹول کی کارکردگی پر اثر انداز ہوتا ہے۔ مفت پراکسیز عموماً غیر مستحکم ہوتی ہیں، اکثر بلاک ہو جاتی ہیں اور جلد ناکامیوں کا باعث بنتی ہیں۔
پروڈکشن کے استعمال کے لیے، بڑے IP پولز، روٹیشن سپورٹ اور زیادہ اپ ٹائم فراہم کرنے والے قابل اعتماد فراہم کنندگان کے ادائیگی شدہ حلوں پر انحصار کرنے کی سفارش کی جاتی ہے۔
جی ہاں، Axios کو واقعی عالمی سطح پر اس طرح کنفیگر کیا جا سکتا ہے کہ وہ پراکسی سرور استعمال کرے جس کے لیے ماحول کے متغیرات HTTP_PROXY، HTTPS_PROXY اور NO_PROXY مقرر کیے جائیں۔ یہ متغیرات سسٹم پراپرٹیز کے ذریعے سیٹ کیے جا سکتے ہیں۔ ایسا کرنے کے لیے، System Properties → Environment Variables کھولیں، ایک نیا متغیر بنائیں (مثال کے طور پر، HTTP_PROXY)، اور پراکسی سرور کا پتہ اس کی ویلیو کے طور پر درج کریں۔
Axios مختلف قسم کی پراکسیز میں فرق نہیں کرتا: رہائشی، موبائل، یا ڈیٹا سینٹر — توثیق کی سیٹ اپ ایک جیسی ہے۔ بنیادی ضرورت درست URL فارمیٹ یا صحیح طور پر متعین کیا گیا proxy.auth بلاک ہے۔
Node.js میں Axios پراکسی کے استعمال کے اہم متبادلات node-fetch اور Got ہیں۔ دونوں لائبریریاں HTTP/HTTPS پراکسیز کی حمایت کرتی ہیں، چاہے ماحول کے متغیرات کے ذریعے ہو یا کوڈ میں صریح کنفیگریشن کے ذریعے۔ جہاں ممکن ہو، Got ٹائم آؤٹس، ری ٹرائیز، اور درخواست حسب ضرورت کے لیے زیادہ لچکدار اختیارات فراہم کرتا ہے، جبکہ node-fetch فرنٹ اینڈ ڈویلپرز کے لیے زیادہ مانوس نحو رکھتا ہے۔ انتخاب آپ کی مخصوص ضروریات اور سہولت پر منحصر ہے۔
تبصرے: 0