mirror of
https://github.com/Marsh232/Telegram-IP-CALC.git
synced 2026-02-16 02:20:53 +00:00
add func subnets
This commit is contained in:
19
.idea/workspace.xml
generated
19
.idea/workspace.xml
generated
@@ -4,7 +4,7 @@
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="56d3644b-12ed-4137-967a-9e3a3c12d93b" name="Changes" comment="hz">
|
||||
<list default="true" id="56d3644b-12ed-4137-967a-9e3a3c12d93b" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
</list>
|
||||
@@ -68,6 +68,9 @@
|
||||
<module name="Telegram-IP-CALC" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="C:\Users\truno\AppData\Local\Programs\Python\Python310\python.exe" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
@@ -100,6 +103,7 @@
|
||||
<workItem from="1662485900255" duration="690000" />
|
||||
<workItem from="1662496666820" duration="3601000" />
|
||||
<workItem from="1662542574124" duration="3363000" />
|
||||
<workItem from="1662648763510" duration="5768000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="Add basic output">
|
||||
<created>1662545492088</created>
|
||||
@@ -137,7 +141,18 @@
|
||||
<MESSAGE value="hz" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="hz" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
|
||||
<url>file://$PROJECT_DIR$/main.py</url>
|
||||
<line>37</line>
|
||||
<option name="timeStamp" value="1" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||
<SUITE FILE_PATH="coverage/Telegram_IP_CALC$main.coverage" NAME="main Coverage Results" MODIFIED="1662545951987" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||
<SUITE FILE_PATH="coverage/Telegram_IP_CALC$main.coverage" NAME="main Coverage Results" MODIFIED="1662659792918" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
||||
</component>
|
||||
</project>
|
||||
32
main.py
32
main.py
@@ -2,25 +2,37 @@ import ipaddress
|
||||
|
||||
|
||||
def main(ip):
|
||||
list_ip = ip.split('/') # Разделяет вводимый ip на часть с маской, и без
|
||||
ipv4 = ipaddress.ip_address(list_ip[0])
|
||||
print('Ваш ip адрес:', ip) # Выводит например "Ваш ip адрес: 192.168.10.128/24"
|
||||
list_ip = ip.split('/') # Разделяет вводимый ip на часть с маской, и без
|
||||
print('Ваш ip адрес:', ip) # Выводит например "Ваш ip адрес: 192.168.10.128/24"
|
||||
|
||||
net = ipaddress.ip_network(ip, strict=False) # В функцию кладётся сетевая часть ip, без хостовой части
|
||||
print('Маска:', net.netmask, '=', list_ip[1], '\n') # Выводит маску
|
||||
print('Network:', net) # Выводит сеть
|
||||
print('Broadcast:', net.broadcast_address) # Выводит broad
|
||||
net = ipaddress.ip_network(ip, strict=False) # В функцию кладётся сетевая часть ip, без хостовой части
|
||||
print('Маска:', net.netmask, '=', list_ip[1], '\n') # Выводит маску
|
||||
print('Network:', net) # Выводит сеть
|
||||
print('Broadcast:', net.broadcast_address) # Выводит broad
|
||||
print('HostMin:', net[1])
|
||||
print('HostMax:', net[-2])
|
||||
print('Hosts:', len(list(net.hosts()))) # Выводит кол-во хостовых ip
|
||||
print('Hosts:', len(list(net.hosts()))) # Выводит кол-во хостовых ip
|
||||
count = 0
|
||||
for n_ip in net.hosts():
|
||||
count += 1
|
||||
if str(n_ip) == list_ip[0]:
|
||||
print('№ в сети:', count) # Выводит какой ip по счёту в сети
|
||||
print('№ в сети:', count) # Выводит какой ip по счёту в сети
|
||||
break
|
||||
|
||||
|
||||
def subnets(ip, prefix):
|
||||
subnet = ipaddress.ip_network(ip, strict=False)
|
||||
list_subnet = list(subnet.subnets(new_prefix=int(prefix)))
|
||||
subnet1 = ipaddress.ip_network(str(list_subnet[1]), strict=False)
|
||||
|
||||
print('\nМаска:', subnet1.netmask, '=', prefix)
|
||||
|
||||
#for i in
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
addr = input('Введите ip: ') # Пользователь вводит ip
|
||||
addr = input('Введите ip: ') # Пользователь вводит ip
|
||||
main(addr)
|
||||
# Тут должна быть кнопка типа "Подсети"
|
||||
new_prefix = input('\nВведите префикс: ')
|
||||
subnets(addr, new_prefix)
|
||||
Reference in New Issue
Block a user