< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<html>
<kepala>
<title>Dokumen Tanpa Judul</title>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
</kepala>
<tubuh>
<%
redupkan finishgetip,showip,allip
'/////////////////////////////////////////////////// /// ////////
'Program ini belum terlalu disederhanakan dan akan dimodifikasi nanti.
'Basis data yang digunakan oleh program ini adalah - "Feng Zhihong" - ditulis oleh - "Punt" - basis data IP yang disertakan dalam perangkat lunak dan
'"Tabel Alokasi Alamat IP Global.chm" yang ditulis oleh penulis "Guohua Soft" - "Feng Guohua" - digabungkan menjadi satu
'Terima kasih kepada "Feng Zhihong" dan "Feng Guohua" yang telah menyediakan data
'Masih banyak alamat IP duplikat di database. Saya harap ada yang bisa menghapusnya dan memperkecil ukuran database.
'Program saya masih sangat canggung. Saya harap semua orang dapat memberi saya lebih banyak pendapat dan berkomunikasi lebih banyak.
'/////////////////////////////////////////////////// /// //////////
'Solusi: www.downcodes.com
'IP klien yang diperoleh biasanya 202.11.25.1, dan format IP dalam database adalah 202.011.025.001, yang memerlukan diperoleh
'Konversi IP klien ke format yang sama dengan IP di database
'Karena IP yang kami gunakan saat ini terbagi menjadi 4 segmen, masing-masing segmen memiliki 3 digit, dipisahkan dengan "."
'Jadi ide saya adalah membagi IP klien menjadi 4 segmen dengan simbol ".", yaitu 202/11/25/1
'Kemudian periksa setiap paragraf secara terpisah. Jika 3 digit tetap tidak berubah; jika kurang dari 3 digit, menjadi 2 digit. Tambahkan 1 0 di depan paragraf dan menjadi 1. Demikian pula, tambahkan 2 0 detik.
'Setelah mendapatkan IP yang diformat, hapus segmen terakhir dari IP tersebut, yaitu ambil 11 digit pertama termasuk ".", bandingkan dengan 11 digit pertama kolom startip di database, dan temukan nilai yang sama
'Karena dari database terlihat tiga segmen pertama startip dan endip sama, dan segmen terakhir hanya alamat subnet internal dan dapat dihapus.
'Jadi ambil saja 11 digit pertama dari bidang startip atau endip mana pun dan bandingkan dengan 11 digit pertama IP klien untuk menemukan lokasi yang benar.
'/////////////////////////////////////////////////// /// ////////////////
fungsi checkip_trueip()
'Dapatkan IP asli klien
getclientip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") 'Jika klien menggunakan server proxy, metode Request.ServerVariables("REMOTE_ADDR") hanya bisa mendapatkan nilai null, maka metode ServerVariables("HTTP_X_FORWARDED_FOR") harus digunakan
Jika getclientip = "" Lalu
getclientip = Request.ServerVariables("REMOTE_ADDR")'Jika klien tidak menggunakan proxy, Request.ServerVariables("HTTP_X_FORWARDED_FOR") akan mendapatkan nilai null, dan metode Request.ServerVariables("REMOTE_ADDR") harus digunakan
berakhir jika
checkip_trueip = dapatkan tip klien
fungsi akhir
'/////////////////////////////////////////////////// /// ////////
function getaccessrecordset(db,sql,mark,read)'Dapatkan objek Recordset
set conn=getaccessconn(db)'Parameter masukan adalah jalur relatif dari db-database, pernyataan sql-SQL, tandai, baca adalah metode pembacaan basis data, 1,1 adalah baca-saja, 1,3 adalah baca-tulis
'constr="Penyedia=microsoft.jet.oledb.4.0;"&"data Source="&Server.MapPath(db)
' samb.buka konstruk
atur getaccessrecordset=server.CreateObject("ADODB.Recordset")
getaccessrecordset.open sql,sambung,tandai,baca
Fungsi akhir
'/////////////////////////////////////////////////// /// ///////////
function getaccessconn(db)'Dapatkan objek koneksi
atur getaccessconn=server.CreateObject("ADODB.Connection")
'constr="DRIVER={MICROSOFT ACCESS DRIVER (*.MDB)};DBQ="&SERVER.MAPPATH("allcon/#bbsall.mdb")
constr="Penyedia=microsoft.jet.oledb.4.0;"&"data Source="&Server.MapPath(db)
getaccessconn.buka konstr
fungsi akhir
'/////////////////////////////////////////////////// /// ///////////
getip redup
'getip=(trim(request.ServerVariables("REMOTE_ADDR")))'Dapatkan IP dari klien
'getip=(trim(request.QueryString("comes"))) 'Masukkan IP Anda sendiri untuk menguji
'respons.Tulis(getip&"<br>")
'/////////////////////////////////////////////////// /// ///////////
function checkip_locations(checkstring) 'Mengembalikan fungsi lokasi dari karakter pembatas dalam IP
checkip_locations=Instr(checkstring,".") 'Tetapkan nilai lokasi ke fungsi
fungsi akhir
'/////////////////////////////////////////////////// /// ///////////
'Fungsi selanjutnya adalah untuk membagi IP dan mendapatkan sisa rangkaian IP di sisi kanan simbol "."
fungsi checkip_left(string check)
location_left=checkip_locations(checkstring) 'Dapatkan lokasi di mana "." pertama kali muncul di string IP yang tersisa
iplength_left=Len(checkstring) 'Dapatkan panjang string IP yang tersisa
Divide_locations_left=iplength_left-locations_left 'Dapatkan posisi di mana "." pertama kali muncul di rangkaian IP yang tersisa, berapa digit dari kanan ke kiri
ipstr_left=Right(checkstring,divide_locations_left) 'Dapatkan sisa string IP di sisi kanan simbol "."
checkip_left=ipstr_left 'Tetapkan string yang diperoleh di atas ke fungsi
fungsi akhir
'/////////////////////////////////////////////////// /// //////////
'Fungsi selanjutnya adalah untuk membagi IP dan mendapatkan string IP di sebelah kiri simbol "." setelah setiap pemisahan, yaitu IP dibagi menjadi empat segmen, dan fungsi string dari setiap segmen
adalah checkip_right(checkstring)
location_right=checkip_locations(checkstring) 'Dapatkan lokasi di mana "." pertama kali muncul di IP
iplength_right=Len(checkstring) 'Dapatkan panjang string IP
Divide_locations_right=iplength_right-locations_right 'Dapatkan posisi di mana "." pertama kali muncul di rangkaian IP yang tersisa, berapa digit dari kanan ke kiri
ipstr11=Trim(Replace(Left(checkstring,locations_right),".","")) 'Hapus simbol "." dari string di sebelah kiri "."
'Jika IP dibagi menjadi 4 segmen dan setiap segmen kurang dari 3 digit, tambahkan 0
jika Len(ipstr11)="2" maka ipstr11="0"&ipstr11
jika Len(ipstr11)="3" maka ipstr11=ipstr11
jika Len(ipstr11)="1" maka ipstr11="00"&ipstr11
checkip_right=ipstr11 'Dapatkan string sebelum simbol ".", yaitu salah satu dari empat segmen setelah IP dibagi menjadi empat segmen.
fungsi akhir
'///////////////////////////////////////////////// /// //////////
'Periksa apakah IP tersebut adalah IP jaringan internal
'Penilaian yang saya tulis didasarkan pada: 127.0.0.0-127.XXX.XXX.255 dan 192.0.0.0-192.XXX.XXX.255. Jika keduanya, itu adalah IP jaringan internal, jika tidak maka itu adalah jaringan eksternal.
'Saya tidak tahu apa dasar penilaian IP internal, jadi saya membutuhkan ahli untuk memberi saya nasihat dan melakukan koreksi.
fungsi checkiplocal (string check)
redupkan re1
set re1=new RegExp 'Dapatkan objek ekspresi reguler
Ekspresi dalam 're1.pattern adalah bahwa IP jaringan internal harus dimulai dengan 127 atau 192, dan di tengahnya harus berupa angka 1-3 dari 0-9 ditambah "."
re1.pattern="^(127.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})|(192. [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})$"
re1.global=salah
re1.Abaikan huruf=salah
checkiplocal=re1.test(periksa string)
atur re1=tidak ada
fungsi akhir
'/////////////////////////////////////////////////// /// ////////////////////////
fungsi checkip_remote(string check)
dim iplength 'Panjang string IP
lokasi redup '"."Lokasi di mana karakter muncul
iplength=Len(memeriksa)
location=Instr(checkstring,".") 'Ambil posisi di mana simbol "." pertama kali muncul dalam string IP dari kiri ke kanan
'Bagi IP menjadi 4 segmen dengan karakter "."
lokasi2=iplength-lokasi
ipstring1=Kiri(string centang,lokasi)
ipstring2=Kanan(checkstring,lokasi2)
fungsi akhir
'/////////////////////////////////////////////////// /// ////////
'/////////////////////////////////////////////////// /// ////////
ipinfo_local="IP Anda adalah IP intranet!"
ipinfo_remote="IP jaringan eksternal!"
getip=checkip_trueip()
currentip=checkiplocal(getip) 'Panggil fungsi checkiplocal() untuk memeriksa IP yang diperoleh guna menentukan apakah itu alamat jaringan internal atau alamat jaringan eksternal
'jika currentip=true maka' kode uji
'respons.Tulis(ipinfo_local)
jika currentip=true maka 'adalah salah
respon.Write(ipinfo_local)' menunjukkan IP jaringan internal
kalau tidak
'Mengubah
'Berikut ini adalah ekstraksi loop dan pengisian bit dengan 0 untuk membagi IP menjadi 4 segmen
location=checkip_locations(getip)'Dapatkan lokasi di mana "." pertama kali muncul di IP sebelum pemisahan pertama
iplength=Len(getip) 'Dapatkan panjang IP klien
Divide_locations=iplength-locations 'Dapatkan lokasi penghitungan IP klien dari kanan ke kiri hingga "." pertama penghitungan IP dari kiri ke kanan.
ipstr1=Pangkas(Ganti(Kiri(getip,lokasi),".",""))
ipstr2=Kanan(getip,divide_locations)'Dapatkan sisa nilai di sisi kanan klien setelah pemisahan pertama
'Jika IP dibagi menjadi 4 segmen dan setiap segmen kurang dari 3 digit, tambahkan 0
if Len(ipstr1)="2" maka ipstr1="0"&ipstr1 'Panjangnya dua, kurang dari tiga, tambahkan 0 sebelum string
if Len(ipstr1)="3" maka ipstr1=ipstr1 'Menurut analogi di atas
if Len(ipstr1)="1" maka ipstr1="00"&ipstr1 'IPstr1 saat ini adalah segmen IP pertama
ipstr12=checkip_right(ipstr2) 'IPstr12 saat ini adalah segmen kedua dari IP
ipstr122=checkip_kiri(ipstr2)
ipstr13=checkip_right(ipstr122) 'IPstr13 saat ini adalah segmen ketiga dari IP
ipstr14=checkip_left(ipstr122) 'IPstr14 saat ini adalah segmen keempat dari IP
if Len(ipstr14)="1" maka ipstr14="00"&ipstr14 'Tambahkan 0 ke segmen keempat dari IP yang diperoleh
jika Len(ipstr14)="2" maka ipstr14="0"&ipstr14
jika Len(ipstr14)="3" maka ipstr14=ipstr14
'response.write ipstr1&"<br>" 'Tulis nilai setiap segmen setelah segmentasi IP
'respons.tulis ipstr12&"<br>"
'respons.tulis ipstr13&"<br>"
'respons.tulis ipstr14
allip=ipstr1&"."&ipstr12&"."&ipstr13&"."&ipstr14
finishgetip=kiri(allip,11)
redupkan ipaddr,iplocal,sqls
'Pernyataan SQL berikut adalah untuk mengekstrak apakah nilai 11-bit kiri dari bidang startip sama dengan nilai 11-bit kiri dari IP klien
sqls="PILIH negara_negara,pengguna area DARI ip WHERE Kiri(startip,11)='"&finishgetip&"'"
set rs=getaccessrecordset("#worldip.mdb",sqls,"1","1") 'Dapatkan nilai kueri
jika rs.eof maka 'Jika tidak ditemukan nilai yang sama dengan IP klien
showip=checkip_trueip() 'Tetapkan IP klien ke showip
ipaddr="Wilayah tidak diketahui" 'Negara atau provinsi
iplocal="Lokasi tidak diketahui" 'Tempat tertentu
kalau tidak
showip=checkip_trueip()
ipaddr=rs("negara_negara")
iplocal=rs("pengguna area")
berakhir jika
'response.write("IP Anda adalah: "&showip&" ")
'response.write("Anda berasal dari: "&ipaddr&" ")
'response.write("Anda adalah:"&iplocal)
rs.tutup
atur rs=tidak ada
%>
<%="IP Anda adalah:"&showip&" "%>
<%="Anda berasal dari:"&ipaddr&" "%>
<%="Anda adalah:"&iplocal&"<br>"%>
Jika ada kesalahan pada alamat IP, silakan hubungi saya atau unduh database untuk koreksi, terima kasih! <br>
<tabel lebar = "760" border = "0" cellpacing = "0" cellpadding = "0">
<tr>
<td width="203"><a href="Script56.rar">Unduh Script56.CHM</a>-->1,34 juta</td>
<td width="548">Pendahuluan: dokumentasi bantuan Microsoft, termasuk sintaksis VBscript, sintaksis JScript, ekspresi reguler </td>
<td lebar="3"> </td>
<td lebar="6"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><a href="ipsearch.rar">Unduh program pencarian alamat IP global ASP</a></td>
<td>ASP+ACCESS ukuran 401K format rar</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><font color="#000099"> </font> <font color="#0000FF"> </font></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Jika IP Anda tidak diketahui, silakan kirimkan lokasi Anda jika Anda mau:</td>
<td>
<form nama="form1" metode="posting" action="postip.asp">
<lebar tabel="100%" border="1" Cellspacing="0" cellpadding="0">
<tr>
<td width="21%"> Provinsi: </td>
<td lebar="44%">
<input type="teks" nama="negara_negara">
</td>
<td lebar="35%"> </td>
</tr>
<tr>
<td width="21%">Lokasi atau pengguna jaringan tertentu:</td>
<td lebar="44%">
<input type="text" nama="pengguna area">
</td>
<td width="35%">Misalnya: Universitas Beijing Tsinghua atau pengguna Beijing Netcom</td>
</tr>
<tr>
<td lebar="21%"> </td>
<td lebar="44%">
<input type="hidden" name="startip" value="<%=finishgetip&".000"%>">
<input type="hidden" name="endip" value="<%=finishgetip&".255"%>">
</td>
<td lebar="35%"> </td>
</tr>
<tr>
<td lebar="21%"> </td>
<td lebar="44%">
<input type="kirim" nama="Kirim" value="Kirim">
</td>
<td lebar="35%"> </td>
</tr>
</tabel>
</bentuk>
</td>
<td> </td>
<td> </td>
</tr>
</tabel>
<%
berakhir jika
%>
</tubuh>
</html>
Alamat demo: http://www.knowsky.com/ip