Tipe bawaan bagian II

PS C: WINDOWS> $hostip=[System.out. Bersih. Dns]::GetHostEntry(“www.reskit.net“)

Tipe bawaan bagian II

PS C: WINDOWS> $hostip.namahost

www.reskit.net

PS C: WINDOWS> $hostip.daftar alamat

Alamat IPKeString: 213.254.189.191

Alamat: 3216899797

AlamatKeluarga: InterNetwork

Id Cakupan :

IsIPv6Multicast: Salah

IsIPv6LinkLokal: Salah

IsIPv6SiteLocal: Salah

Dalam contoh ini, saya memanggil metode GetHostName dari System. Bersih. Kelas Dns, yang mengambil argumen string tunggal (nama host yang akan diselesaikan) dan mengembalikan satu atau lebih objek IPHostEntry, satu untuk setiap alamat IP yang ditemukan; dalam hal ini, hanya satu, yang kemudian ditampilkan. Perhatikan sintaks yang digunakan untuk memanggil metode GetHostName statis: Anda harus mengapit nama kelas lengkap dalam tanda kurung siku diikuti dengan dua titik dua, lalu nama metode dan kumpulan tanda kurung, kosong () atau berisi parameter yang dipisahkan koma jika lebih dari satu. Jadi, memanggil System. Bersih. DNS.GetHostByAddress akan dilakukan seperti ini:

PS C: WINDOWS> [System. Bersih. Dns]::GetHostByAddress(“207.46.19.190″) | kaki * -otomatis

Daftar Alamat Alias ​​Nama Host

——– ——- ———–

wwwbaytest1.microsoft.com {} {207.46.19.190}

Konvensi pemanggilan yang panjang lebar ini, serta kebutuhan untuk mengeja nama kelas secara lengkap, menjadi sedikit membosankan dan pada awalnya tidak terlihat jelas. Saya rasa itu hanya sebagian dari hal yang perlu Anda ketahui untuk memanfaatkan .NET Framework menggunakan PowerShell.

Jadi bagaimana Anda memanfaatkan fungsi ini? Salah satu kemungkinannya adalah mengembangkan skrip pemantauan sistem. Anda dapat membuat file nilai yang dipisahkan koma (CSV) yang berisi nama host dan alamat IP statisnya, dan skrip kemudian dapat membacanya file dan terapkan fungsi GetHostByAddress untuk menentukan alamat IP sebenarnya yang saat ini dicatat di DNS, memberi tahu Anda jika ada perbedaan. Anda dapat membawa aplikasi ini lebih jauh dengan menggunakan System. Bersih. informasi jaringan. Kelas ping untuk benar-benar melakukan ping ke setiap host dengan menggunakan metode Send(), seperti yang ditunjukkan di sini:

$nama host =”www.reskit.net

$pingSender = objek baru System.out. Bersih. Informasi Jaringan. Ping

$balas = $PingSender. Kirim($nama host)

# Hasil cetak

“Nama Host {0}” -f $namahost

“Alamat: {0}” -f $balas. Alamat. KeString()

“Waktu pulang pergi: {0}” -f $reply. Waktu Pulang Pergi

“Waktunya untuk hidup: {0}” -f $reply. Pilihan. Ttl

“Jangan terfragmentasi: {0}” -f $reply. Pilihan. Jangan Fragmen

“Ukuran buffer: {0}” -f $reply. Penyangga. Panjang

Skrip pemantauan kesehatan Anda sekarang dapat mengambil file host, melakukan ping ke masing-masing host, dan menyorot server mana pun yang RTT-nya terlalu tinggi atau yang tidak merespons ping.

Dua komponen lain di perpustakaan kelas .NET yang terkadang Anda temui adalah bidang dan enumerasi, atau Enum. Bidang adalah konstanta yang disediakan oleh .NET Framework, salah satu contoh matematika terkenal adalah pi, yang disediakan di System. Ruang nama matematika:

PS C: WINDOWS> [tunggal] $pi1 = [system.math]::pi

PS C: WINDOWS> [ganda] $pi2 = [system.math]::pi

PS C: JENDELA> $pi1,$pi2

3.141593

3.14159265358979

Seperti yang akan Anda lihat dari contoh ini, .NET Framework menyediakan konstanta presisi ganda dan tunggal.

Enumerasi adalah komponen keren yang disediakan oleh kerangka kerja. Metode kelas .NET tertentu memerlukan parameter yang harus dipilih dari dalam kumpulan tertentu: misalnya, Anda dapat menggunakan System. Menghibur. Warna Latar Belakang dan Sistem. Menghibur. ForegroundColor untuk mengatur warna latar belakang dan latar depan konsol. Metode tersebut mengambil nama warna sebagai parameter, jadi, misalnya, untuk menyetel konsol menjadi karakter putih dengan latar belakang biru, Anda harus menentukan: