Proxy IP ଏବଂ ପୋର୍ଟ: ଆପଣଙ୍କ ଆପ୍ କେଉଁ ଫର୍ମାଟ୍ ଚାହେଁ?
Proxy ତାଲିକାର ଏଣ୍ଟ୍ରିକୁ HTTP କିମ୍ବା SOCKS URL ରେ ବଦଳାନ୍ତୁ, host ଓ port ର ପୃଥକ୍ ଘର ପୂରଣ କରନ୍ତୁ ଏବଂ IPv6 ଠିକଣା ଠିକ୍ ଭାବେ ଲେଖନ୍ତୁ।
କେତେକ ଆପ୍ IP:port ଚାହାନ୍ତି। ଅନ୍ୟଗୁଡ଼ିକୁ http:// କିମ୍ବା socks5:// ରୁ ଆରମ୍ଭ ହେଉଥିବା URL ଦରକାର। ବ୍ରାଉଜର୍ ସେଟିଂରେ ଠିକଣା ଓ ପୋର୍ଟ ପ୍ରାୟତଃ ପୃଥକ୍ ଘରେ ଥାଏ। ତେଣୁ ସମାନ endpoint ର ଠିକଣା ନ ବଦଳି ଅନେକ ଫର୍ମାଟ୍ ହୋଇପାରେ।
ଏକ IPv4 ଏଣ୍ଟ୍ରି
ଧରନ୍ତୁ HTTP proxy ତାଲିକା ଉଦାହରଣ ଭାବେ HTTP proxy 203.0.113.10:8080 ଦିଏ।
| ଆପ୍ ଯାହା ଚାହେଁ | ଲେଖନ୍ତୁ |
|---|---|
| Host କିମ୍ବା IP | 203.0.113.10 |
| ପୋର୍ଟ | 8080 |
| HTTP proxy URL | http://203.0.113.10:8080 |
ପୋର୍ଟ ଦୁଇଥର ଲେଖନ୍ତୁ ନାହିଁ। ଆପ୍ରେ ପୋର୍ଟ ଘର ଥିଲେ host ଘରେ 203.0.113.10:8080 ରଖିବା ଫଳରେ ଏହା ପୂରା string କୁ hostname ଭାବେ resolve କରିବାକୁ ଚେଷ୍ଟା କରିପାରେ। ସେହିଭଳି କେବଳ IP ଠିକଣା ଚାହୁଁଥିବା ଘରେ scheme ଯୋଡ଼ନ୍ତୁ ନାହିଁ।
Scheme ସେବା ସହ ମେଳ ଖାଇବା ଦରକାର। ଠିକଣା ବଦଳାଇବା ପୂର୍ବରୁ client ର ସମର୍ଥନ ଅନୁଯାୟୀ HTTP କିମ୍ବା SOCKS5 ବାଛନ୍ତୁ। HTTP endpoint ଆଗରେ socks5:// ଲେଖିଲେ client ପଠାଉଥିବା ବିଷୟ ବଦଳେ; ସେହି server ରେ SOCKS5 ସକ୍ରିୟ ହୁଏ ନାହିଁ।
URL ରେ IPv6 ପାଇଁ ବର୍ଗ ବନ୍ଧନୀ ଦରକାର
IPv6 ଠିକଣାରେ ପୂର୍ବରୁ କୋଲନ୍ ଥାଏ, ତେଣୁ URL ପୋର୍ଟ ଯୋଡ଼ିବା ପୂର୍ବରୁ ଠିକଣାକୁ ବର୍ଗ ବନ୍ଧନୀରେ ରଖେ:
http://[2001:db8::10]:8080
socks5://[2001:db8::10]:1080
ବନ୍ଧନୀ ନଥିଲେ ଠିକଣା ଓ ପୋର୍ଟର ସୀମା ଅସ୍ପଷ୍ଟ। ପୃଥକ୍ ଘର ଥିବା ଆପ୍ ସାଧାରଣତଃ host ପାଇଁ 2001:db8::10 ଏବଂ ପୋର୍ଟ ପାଇଁ 8080 ଚାହେଁ; ସେହି ଆପ୍ର ଇନପୁଟ୍ ଫର୍ମାଟ୍ ଅନୁସରଣ କରନ୍ତୁ। ଏଠାର ଉଭୟ ଠିକଣା ଦଲିଲର ଉଦାହରଣ, ଚାଲୁଥିବା proxy ନୁହେଁ।
ପ୍ରତ୍ୟେକ କୋଲନ୍ରେ ଭାଗ ନ କରି URL ପାର୍ସ କରନ୍ତୁ
ଛୋଟ Python script ମାନକ URL parser ଦ୍ୱାରା IPv4 ଏବଂ ବନ୍ଧନୀଯୁକ୍ତ IPv6 URL ସମ୍ଭାଳିପାରେ:
from urllib.parse import urlsplit
proxy = urlsplit("http://[2001:db8::10]:8080")
print(proxy.scheme)
print(proxy.hostname)
print(proxy.port)
hostname property ବନ୍ଧନୀ ବିନା ଠିକଣା ଫେରାଏ। ମୂଳ string କୁ ପ୍ରତ୍ୟେକ କୋଲନ୍ରେ ଭାଗ କଲେ ଏହି ଉଦାହରଣ ନଷ୍ଟ ହେବ। ପ୍ରକୃତ importer ରେ host ନଥିବା, ସମର୍ଥନ ନଥିବା scheme ଏବଂ 1–65535 ବାହାରର ପୋର୍ଟ ମଧ୍ୟ ପ୍ରତ୍ୟାଖ୍ୟାନ କରନ୍ତୁ। URL ପାର୍ସ କଲେ ତାହାର ଅଂଶ ମିଳେ; ସେବା ଅଛି ବୋଲି ପ୍ରମାଣ ମିଳେ ନାହିଁ।
ତାଲିକାରେ ବ୍ୟବହାରକାରୀ ନାମ ଓ ପାସୱାର୍ଡ ଥିଲେ
ସାଧାରଣ URL ଗଠନ ହେଉଛି http://username:password@host:port। ପରିଚୟପତ୍ରରେ @, # ଓ / ପରି ଅକ୍ଷର ପାଇଁ ଠିକ୍ URL encoding ଦରକାର। client ପୃଥକ୍ ପରିଚୟପତ୍ର ଘର ଦେଲେ ହାତରେ URL ତିଆରି କରିବା ଅପେକ୍ଷା ସେଗୁଡ଼ିକ ବ୍ୟବହାର କରିବା ସାଧାରଣତଃ ସହଜ।
କୋଲନ୍ ଦ୍ୱାରା ପୃଥକ୍ ପରିଚୟପତ୍ର string ବଦଳାଇବା ପୂର୍ବରୁ ପ୍ରଦାନକାରୀଙ୍କ ମୂଳ ଫର୍ମାଟ୍ ଦେଖନ୍ତୁ। ଏପରି ଚାରି ଘରର ସାର୍ବଜନୀନ ଅର୍ଥ ନାହିଁ ଏବଂ ପାସୱାର୍ଡରେ ମଧ୍ୟ କୋଲନ୍ ଥାଇପାରେ। ସାଧାରଣ IP:port ଧାଡ଼ି ପାଇଁ ତିଆରି parser ଅନ୍ୟ ଫର୍ମାଟ୍ ଚୁପଚାପ ଅନୁମାନ କରିବା ଉଚିତ ନୁହେଁ।