PDA

View Full Version : سوال: محاسبه صحیح IP Range



darklove
یک شنبه 11 دی 1390, 14:54 عصر
با سلام.
مشکلی در PHP دارم.
بنده یک Script درست کردم که IP & Netmask از کاربر دریافت میکنه، مشکل من اینجاست که اگر کسی Netmask وارد کند 255.255.254.0 یا 23/ بجای اینکه وقتی IP رسید به مثلا 192.168.0.254 از 192.168.1.1 شروع کنه ادامه همان 192.168.0.254 که میشود 192.168.0.255 الی آخر.

ممنون میشم که کمکم کنید.

irGeek
یک شنبه 11 دی 1390, 17:24 عصر
برادر(شاید هم خواهر!)
اسکریپتت رو ضمیمه کن شاید فرجی شد.:قلب:
سوالتون که واضح نیست.

darklove
یک شنبه 11 دی 1390, 21:05 عصر
ممنون که جواب دادید.


<?php
include_once('../auth.php');
include_once('../header.php');
?>

<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Ethernet Setup</title>
</head>

<body>

<p align="center"><font face="Arial Black" size="5">Ethernet Setup</font></p>
<p align="center">&nbsp;</p>
<form method="POST" action="eth.php">
<p align="center">Name :
<input type="text" name="name" size="20">&nbsp;&nbsp;&nbsp; Start IP&nbsp; :
<input type="text" name="ip" size="20"><select size="1" name="eip">
<option>1</option>
<option>129</option>
<option>193</option>
<option>225</option>
<option>241</option>
<option>249</option>
<option>253</option>
<option>254</option>
</select>&nbsp;&nbsp;&nbsp; CIDR :
<select size="1" name="cidr">

<option>255.255.0.0</option>
<option>255.255.128.0</option>
<option>255.255.192.0</option>
<option>255.255.224.0</option>
<option>255.255.240.0</option>
<option>255.255.248.0</option>
<option>255.255.252.0</option>
<option>255.255.254.0</option>
<option>255.255.255.0</option>
<option>255.255.255.128</option>
<option>255.255.255.192</option>
<option>255.255.255.224</option>
<option>255.255.255.240</option>
<option>255.255.255.248</option>
<option>255.255.255.252</option>
<option>255.255.255.255</option>
</select></p>
<blockquote>
<p align="center"><font color="#808080">Example :&nbsp;&nbsp;&nbsp;&nbsp;
My Net&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
192.168.0.&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
255.255.255.0</font></p>
</blockquote>
<p align="center"><input type="submit" value="Add" name="Add">&nbsp;&nbsp;&nbsp;
<input type="submit" value="Cancel" name="Cancel"></p>
</form>

</body>

</html>




<?php

include_once('../auth.php');
include_once('../header.php');
include_once('db.php');

if(isset($_POST['Add']) && $_POST['Add']=="Add")
{

$name= $_POST['name'];
$ip= $_POST['ip'];
$eip= $_POST['eip'];
$cidr= $_POST['cidr'];

if ( $cidr == "255.255.0.0" ) {

for ($s=$eip; $s<=65534; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.128.0" ) {

for ($s=$eip; $s<=32766; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.192.0" ) {

for ($s=$eip; $s<=16382; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.224.0" ) {

for ($s=$eip; $s<=8190; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.240.0" ) {

for ($s=$eip; $s<=4094; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.248.0" ) {

for ($s=$eip; $s<=2046; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.252.0" ) {

for ($s=$eip; $s<=1022; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.254.0" ) {

for ($s=$eip; $s<=510; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.255.0" ) {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.255.128" ) {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.255.192" ) {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.255.224" ) {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.255.240" ) {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.255.248" ) {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

elseif ( $cidr == "255.255.255.252" ) {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}

else {

for ($s=$eip; $s<=254; $s++ ) {
echo "<pre>";
echo "$name ";
echo "$ip","$s ";
echo "$cidr";
echo "</pre>";
}
}



}


if(isset($_POST['Cancel']) && $_POST['Cancel']=="Cancel")
{

echo "<html>";
echo "<meta http-equiv=REFRESH content=0;url=ethset.php>";
echo "</html>";

}

?>

darklove
سه شنبه 13 دی 1390, 14:03 عصر
کسی نسیت جواب بدهد ؟