Სარჩევი:
- ნაბიჯი 1: როგორ ვიწყებთ?
- ნაბიჯი 2: დავიწყოთ
- ნაბიჯი 3: კავშირის შექმნა
- ნაბიჯი 4: მოდით გამოგიგზავნოთ შინაარსი
- ნაბიჯი 5: მოდით გქონდეთ ღია კავშირი
- ნაბიჯი 6: დასკვნა
ვიდეო: Netcat პითონში: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
რა არის netcat? სახელმძღვანელო გვერდზე netcat ნათქვამია შემდეგნაირად: "nc (ან netcat) პროგრამა გამოიყენება თითქმის ყველაფრისთვის, რაც მოიცავს TCP, UDP ან UNIX დომენის სოკეტებს. მას შეუძლია გახსნას TCP კავშირები, გაგზავნოს UDP პაკეტები, უსმენს თვითნებურად TCP და UDP პორტები, აკეთებენ პორტის სკანირებას და უმკლავდებიან როგორც IPv4- ს, ასევე IPv6- ს. Telnet- ისგან განსხვავებით, nc სკრიპტები ლამაზად და გამოყოფს შეცდომის შეტყობინებებს სტანდარტულ შეცდომებზე, ნაცვლად იმისა, რომ გაგზავნონ ისინი სტანდარტულ გამომუშავებაზე, როგორც ამას აკეთებს telnet (1)."
არსებითად, netcat გაძლევთ საშუალებას დაუკავშირდეთ სხვა სერვერებს TCP ან UDP პროტოკოლის გამოყენებით. TCP ნიშნავს გადაცემის კონტროლის პროტოკოლს და არის კავშირზე ორიენტირებული. UDP ნიშნავს უნივერსალური დატაგრამის პროტოკოლს და არ არის დაკავშირებული. TCP ჩვეულებრივ გამოიყენება ინტერნეტ პროგრამებისთვის, ხოლო UDP გამოიყენება მედიის ნაკადისთვის ან VPN– ებისთვის.
ნაბიჯი 1: როგორ ვიწყებთ?
ზემოთ არის თუ როგორ ჰქვია netcat. თქვენ ხედავთ, რომ ბოლოს არის ორი არგუმენტი სახელწოდებით "დანიშნულება" და "პორტი". დანიშნულების ადგილი ეხება სერვერის მასპინძლის სახელს ან IP მისამართს, რომელთან დაკავშირებას ვცდილობთ, ხოლო პორტი ეხება სერვერის პორტს, რომელთანაც ჩვენ ვცდილობთ დაკავშირებას.
ნაბიჯი 2: დავიწყოთ
ზემოთ არის რამდენიმე საწყისი პითონის კოდი. როგორც ხედავთ, ჩვენ გვსურს პროგრამის არგუმენტების დამუშავება ისევე, როგორც ფაქტობრივი პროგრამა. მასპინძლის სახელი იქნება პირველი არგუმენტი შემსრულებლის სახელის შემდეგ, ხოლო პორტი იქნება მეორე არგუმენტი შემსრულებლის სახელის შემდეგ ბრძანების სტრიქონში.
ნაბიჯი 3: კავშირის შექმნა
მოდით შევქმნათ netcat ფუნქცია, რომელიც შეგვიძლია გამოვიყენოთ. რასაც ჩვენ ძირითადად ვაკეთებთ აქ არის სოკეტის შექმნა და სერვერთან დაკავშირება მოცემული პარამეტრების გამოყენებით. Netcat ბრძანებისთვის, მიმდინარე პარამეტრები არის სერვერის მასპინძლის სახელი და პორტი, რომელთანაც ჩვენ ვცდილობთ დაკავშირებას. სოკეტი შეიცავს პარამეტრებს "socket. AF_INET" და "socket. SOCK_STREAM", რადგან ჩვენ არ გვაქვს TCP კავშირი ამ სახელმძღვანელოსთვის.
ნაბიჯი 4: მოდით გამოგიგზავნოთ შინაარსი
ჩვენ გავაფართოვეთ ჩვენი netcat ფუნქცია, რომ მივიღოთ მესამე პარამეტრი, "შინაარსი". აქ არის ბევრი შინაარსი, ასე რომ მოდით დავყოთ იგი ხაზის ნომრით.
სტრიქონი 14-16: ჩვენ ვგზავნით მთელ შინაარსს სოკეტზე, ველოდებით ცოტა ხანს და შემდეგ ვკეტავთ სოკეტს გამავალი მონაცემებისთვის, რათა სოკეტმა იცოდეს, რომ აღარ არსებობს მონაცემები.
სტრიქონი 18-26: ჩვენ ვქმნით ბუფერს სერვერის პასუხის შესანახად და სანამ სოკეტი იღებს მონაცემებს, ჩვენ შედეგს დავამატებთ 1024 ბაიტამდე მონაცემს, სანამ არის წასაკითხი მონაცემები.
ხაზი 28-29: ჩვენ გვსურს, რომ ეს netcat კავშირი იყოს ერთჯერადი, ამიტომ ჩვენ ვაცხადებთ კავშირს დახურულ და შემდეგ კავშირის დახურვის შესახებ.
ხაზი 31: ეს არის სტანდარტული HTTP მოთხოვნა. თუ თქვენ გაუშვებთ კოდს ბრძანების ხაზის არგუმენტებით "google.com" და "80", მაშინ დაინახავთ სათანადო HTTP პასუხს
ნაბიჯი 5: მოდით გქონდეთ ღია კავშირი
ზემოთ მოყვანილი კოდი (რომელიც მდებარეობს წინა ნაწილის კოდის ქვემოთ) უბრალოდ გვაძლევს საშუალებას გავუშვათ მრავალჯერადი netcat ბრძანებები ფსევდო ღია კავშირზე. (სინამდვილეში, ყოველ ჯერზე, როდესაც ბრძანებას აწარმოებთ, ის იხსნება და შემდეგ ხურავს ახალ TCP კავშირს, ასე რომ ის ნამდვილად არ ემსგავსება Netcat– ის ქცევას, ჩვენ ამას უბრალოდ ვაკეთებთ სასწავლო მიზნებისთვის). მოდით დავამსხვრიოთ ეს ასევე სტრიქონად:
სტრიქონი 31: ჩვენ გვსურს ბრძანებების წაკითხვა განუსაზღვრელი ვადით, რათა შევინარჩუნოთ "ინტერაქტიული"
ხაზი 32: ეს არის ჩვენი ბუფერი, რომელიც ინახავს ჩვენი მოთხოვნის შინაარსს
სტრიქონი 36-45: ჩვენ ვკითხულობთ ბუფერში სანამ არ წავიკითხავთ ცარიელ სტრიქონს
ხაზი 48: ჩვენ უბრალოდ ვუწოდებთ ჩვენს Netcat ფუნქციას მასპინძლის სახელით, პორტით და ახლადშექმნილი შინაარსით (რომელიც სწორად არის კოდირებული)
ხაზი 50: თუ ჩვენი ბუფერის შინაარსი შეიცავს ოდესმე "კავშირი: დახურვა" (მიუთითებს, რომ ჩვენ გვინდა კავშირის დახურვა), ჩვენ უბრალოდ გამოვდივართ მარყუჟიდან
ნაბიჯი 6: დასკვნა
ამ გაკვეთილის ბოლოს თქვენ უნდა გქონდეთ მინიმალური სამუშაო ქსელის დანერგვა. მე დავტოვებ მას, როგორც ვარჯიშს, მომხმარებლისთვის განახორციელოს ისეთი მახასიათებლები, როგორიცაა:
1. სხვა პროტოკოლების მხარდაჭერა
2. კოდის დაფიქსირება, რათა კავშირი არ დაიხუროს ყოველ ჯერზე
3. დროშების დამატება, რომელსაც netcat– მა უკვე უნდა შეცვალოს ქცევა
გირჩევთ:
QR კოდების სკანერი OpenCV გამოყენებით პითონში: 7 ნაბიჯი
QR კოდების სკანერი OpenCV– ს გამოყენებით პითონში: დღევანდელ მსოფლიოში ჩვენ ვხედავთ, რომ QR კოდი და შტრიხ კოდი გამოიყენება თითქმის ყველგან, პროდუქტის შეფუთვიდან ონლაინ გადახდებამდე და დღესდღეობით ჩვენ ვხედავთ QR კოდებს რესტორანშიც კი მენიუს სანახავად. ასე რომ, არა ეჭვი მეპარება, რომ ახლა ეს დიდი აზრია. მაგრამ ოდესმე მოგენატრათ
Caesar Cipher პროგრამა პითონში: 4 ნაბიჯი
Caesar Cipher პროგრამა პითონში: Caesar Cipher არის უძველესი და ფართოდ გავრცელებული შიფრი, რომლის დაშიფვრა და გაშიფვრა ადვილია. იგი მუშაობს ანბანის ასოების გადატანით, რათა შეიქმნას სრულიად ახალი ანბანი (ABCDEF- ს შეეძლო გადაეყვანა 4 ასოზე და გახდებოდა EFGHIJ). Caesar C
ტენიანობისა და ტემპერატურის დამკვირვებელი ჟოლოს Pi გამოყენებით SHT25 პითონში: 6 ნაბიჯი
ტენიანობის და ტემპერატურის დამკვირვებელი ჟოლოს Pi გამოყენებით SHT25 პითონში: როგორც ჟოლოს პიის ენთუზიასტი, ჩვენ მოვიფიქრეთ მასზე უფრო სანახაობრივი ექსპერიმენტები. ამ კამპანიაში ჩვენ გავაკეთებთ ტენიანობისა და ტემპერატურის დამკვირვებელს, რომელიც ზომავს ტენიანობასა და ტემპერატურას ჟოლოს პი და SHT25, Humidi
კლიმატური ცვლილებებიდან პითონში ტემპერატურის ცვლილების გრაფიკული გამოსახვა: 6 ნაბიჯი
კლიმატის ცვლილებისგან პითონში ტემპერატურის ცვლილების გრაფიკული გამოსახულება: კლიმატის ცვლილება დიდი პრობლემაა. და ბევრს არ ესმის, რამდენად გაიზარდა. ამ სასწავლო ინსტრუქციაში ჩვენ განვიხილავთ კლიმატის ტემპერატურის ცვლილებას კლიმატის ცვლილების გამო. მოტყუების ფურცლისთვის შეგიძლიათ იხილოთ პითონის ფაილი ქვემოთ
გააკეთეთ მართლაც მაგარი მატრიცა პითონში!: 6 ნაბიჯი
შექმენით მართლაც მაგარი მატრიცა პითონში!: გამარჯობა ბიჭებო! ეს გაკვეთილი გასწავლით თუ როგორ უნდა შექმნათ მატრიცა პითონში! ჩვეულებრივ, ხალხი აკეთებს მატრიცას სურათებში, რადგან ეს ადვილია. მაგრამ ამჯერად მე გაჩვენებ თუ როგორ უნდა გააკეთო მატრიცა კომპიუტერის ერთ – ერთ მძლავრ ენაზე