Bash curl ப்ராக்ஸி பட்டியல்கள்: CRLF வரிகளிலிருந்து இறுதி CR ஐ அகற்றுங்கள்
Bash இல் ப்ராக்ஸி URL களை வரி வரியாகப் படித்து, மதிப்பை curl க்கு அளிப்பதற்கு முன் CRLF கோப்புகளிலிருந்து ஒரு இறுதி CR ஐ அகற்றுங்கள்.
CRLF கோப்பிலிருந்து நகலெடுக்கப்பட்ட வரி proxy.example:8080 போலத் தோன்றலாம், ஆனால் மாறி உண்மையில் ஒரு carriage return எழுத்துடன் முடிகிறது. மாறியை மேற்கோள் குறிகளுக்குள் வைப்பது அந்த எழுத்தைப் பாதுகாக்கிறது; அதை அகற்றாது.
ஒவ்வொரு வரியிலும் ஒரு முழு ப்ராக்ஸி URL உள்ள Bash கோப்பிற்கு:
target='https://api.example/'
while IFS= read -r proxy || [ -n "$proxy" ]; do
proxy=${proxy%$'\r'}
if [ -z "$proxy" ]; then
continue
fi
curl --proxy "$proxy" --max-time 10 --url "$target"
done < ProxyList.txt
http://proxy.example:8080 போன்ற உள்ளீடுகளைப் பயன்படுத்துங்கள்; HTTP ப்ராக்ஸி பட்டியல் அவ்வாறு வடிவமைக்கக்கூடிய பொது முகவரி வேட்பாளர்களை வழங்குகிறது. read புதிய வரி பிரிப்பானை அகற்றுகிறது; பின்னொட்டு விரிவாக்கம் இருந்தால் ஒரு இறுதி CR ஐ அகற்றுகிறது. புதிய வரி இல்லாத கடைசி காலியல்லாத வரியையும் இந்த நிபந்தனை செயலாக்குகிறது.
IFS= read இன் போது புலப் பிரிப்பைத் தடுக்கிறது, -r நேரடி பின்சாய்வுக்கோடுகளைப் பாதுகாக்கிறது. பின்னர் இரட்டை மேற்கோள் குறிகள் விளைந்த URL ஐ ஒரு curl வாதமாக அனுப்புகின்றன. கட்டளை மாற்றீட்டின் வெளியீட்டின் மீது மீள்செயலாக்கத்தைத் தவிர்க்கவும்: ஷெல்லின் சொல் பிரிப்பு curl அவற்றைப் பார்ப்பதற்கு முன் கோப்பின் பதிவு எல்லைகளை மாற்றக்கூடும்.
இது வரி முடிவுகளை இயல்பாக்குகிறது. தவறான கேட்பு நெறிமுறை, இல்லாத இறுதிப் புள்ளி அல்லது அணுக முடியாத சேவையை இது சரிசெய்யாது.