**نت‌کت** (به انگلیسی: **netcat**) (که به صورت **nc** هم نوشته می‌شود) یک برنامه رایانه‌ای برای خواندن و نوشتن بر روی اتصالات شبکه است. نت‌کت در این زمینه قابلیت‌های زیادی داشته و تقریباً در تمام سیستم‌عامل‌های شبه‌یونیکس به صورت پیشفرض وجود دارد.

گزینه‌ها
--------

**-4**
باعث می‌شود تا فقط از آدرسهای IPv4 استفاده شود.

**-6**
باعث می‌شود تا فقط از آدرسهای IPv6 استفاده شود.

**-D**
حالت اشکال زدایی و خطایابی را فعال می‌کند.

**-l**
باعث می‌شود تا نت‌کت بر روی یک پورت خاص (که در خط فرمان مشخص می‌شود) منتظر رسیدن درخواست‌ها باشد.

**-u**
به صورت پیشفرض نت‌کت از اتصالات TCP استفاده می‌کند. با استفاده از این گزینه می‌توان نت‌کت را مجبور به استفاده از اتصالات UDP کرد.

**-n**
باعث می‌شود تا پرس‌وجوی DNS انجام نگیرد.

**-v**
حالت verbose را برای گرفتن خروجی بیشتر فعال می‌کند.

مثال‌هایی از نحوه استفاده
-------------------------

به آسانی می‌توان یک ارتباط کلاینت/سروری برقرار کرد. در یک کنسول دستور زیر را وارد کنید:

```
$ nc -l 1234
```

به این ترتیب نت‌کت بر روی پورت 1234 منتظر رسیدن درخواست‌ها مانده و به آن جواب می‌دهد.
در کنسولی دیگر دستور زیر را اجرا کنید.

```
$ nc 127.0.0.1 1234
```

حالا ارتباط بین دو کنسول برقرار شده و هر چیزی که در یک کنسول تایپ کنید، در کنسول دیگر هم نمایش می‌یابد.

### انتقال فایل

می‌توان به آسانی فایل‌ها را از یک کامپیوتر به کامپیوتری دیگر منتقل کرد:

```
$ nc -l 1234> filename.out
```

و در کامپیوتر دیگر:

```
$ nc host.example.com 1234 <filename.in
```

ارتباط با سرویس‌دهنده‌ها
------------------------

به کمک نت‌کت می‌توان به صورت مستقیم و بدون استفاده از یک واسط با سرویس‌دهنده‌ها (مانند یک وب‌سرور یا یک سرویس‌دهنده پست الکترونیک) ارتباط برقرار کرد. در این مثال قصد داریم ایمیلی را به کمک نت‌کت ارسال کنیم. البته لازمه انجام این کار آشنایی قبلی با پروتکل SMTP است. (در کل برای برقراری ارتباط با هر سروری، باید با پروتکل مورد استفاده توسط آن سرور آشنایی داشت)

```
$ nc localhost 25 <<EOF
HELO host.example.com
MAIL FROM:<user@host.example.com>
RCPT TO:<user2@host.example.com>
DATA
Body of email.
.
QUIT
EOF
```

مثال از ارتباط با یک وب‌سرور:

```
 $ printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80
```

پویش پورتهای باز
----------------

پیدا کردن پورتهای باز و کسب اطلاعات درباره سرویسهای در حال اجرا می‌تواند بسیار مفید باشد. به کمک نت‌کت می‌توانید کلیه پورتهای یک کامپیوتر را پویش کرده و پورتهای باز را شناسایی کنید. برای جلوگیری از ارسال اطلاعات به سرویسها می‌توان از گزینه **-z** استفاده کرد:

```
$ nc -z host.example.com 1-65535
Connection to host.example.com 22 port [tcp/ssh] succeeded!
Connection to host.example.com 25 port [tcp/smtp] succeeded!
```

همچنبن گاهی اوقات دانستن نام نرم‌افزار سرور و همچنین نسخه آن می‌تواند مفید واقع شود. معمولاً سرورها بلافاصله بعد از اتصال کاربر، یک پیغام خوش‌آمد گویی برای او ارسال کرده و این اطلاعات را در آن پیغام قرار می‌دهند. برای به دست آوردن نام و نسخه نرم‌افزارِ سرور، ابتدا باید ارتباطی با آن سرور برقرار کرد و بعد از دریافت پیغام خوش‌آمدگویی، ارتباط را قطع کرد. به کمک گزینه **-w** و مشخص کردن یک مدت زمات کوتاه می‌توان اتصالی را با سرور مورد نظر برقرار کرده و پیغام خوش‌آمد گویی را مشاهده کرد. همچنین بسته به پروتکل مورد استفاده، می‌توان از دستور **QUIT** برای پایان دادن به اتصال استفاده کرد (در صورت انجام این کار نیازی به **-w** نیست)

```
$ echo "QUIT" | nc host.example.com 20-30
SSH-1.99-OpenSSH_3.6.1p2
Protocol mismatch.
220 host.example.com IMS SMTP Receiver Version 0.84 Ready
```

منابع
-----



| * ن
* ب
* و
برنامه‌های واسط خط فرمان یونیکس و shell builtins |
| --- |
| سامانهٔ پرونده | 
* cat
* cd
* Chmod
* Chown
* Chgrp
* چک‌سام (دستور لینوکس)
* cmp
* CP
* dd
* du
* df
* file
* Fsck
* fuser
* ln
* Ls
* Mkdir
* Mount
* Mv
* pax
* Pwd
* rm
* Rmdir
* size
* split
* tee
* دستگاه حسی‌تنی
* type
* umask

 |
| فرایندها | 
* at
* bg
* Chroot
* cron
* fg
* Kill
* Killall
* nice
* pgrep
* Pkill
* ps
* Pstree
* time
* top

 |
| محیط کاربری | 
* clear
* Env
* exit
* finger
* history
* فهرست ابزارهای یونیکس
* logname
* mesg
* Passwd
* اس‌یو
* Sudo
* uptime
* talk
* tput
* Uname
* W (یونیکس)
* wall
* who
* Whoami
* write

 |
| پردازش متن | 
* awk
* banner
* basename
* comm
* csplit
* cut
* Diff
* Dirname
* ed
* ex
* fmt
* fold
* head
* iconv
* join
* less
* more
* nl
* paste
* Sed
* sort
* spell
* رشته‌ها (یونیکس)
* دم (عضو)
* TR
* uniq
* وی‌آی
* wc
* xargs

 |
| Shell builtins | 
* alias
* echo
* expr
* printf
* sleep
* test
* true and false
* unset
* Wait
* Yes

 |
| شبکه | 
* dig
* host
* Ifconfig
* inetd
* nc
* Netstat
* nslookup
* Ping
* rdate
* rlogin
* route
* ssh
* Traceroute

 |
| جستجو | 
* find
* Grep
* locate
* whatis
* whereis

 |
| مستندسازی | 
* apropos
* help
* man

 |
| گوناگون | 
* bc
* dc
* cal
* lp
* od

 |
| *فهرست ابزارهای یونیکس* |