- This topic has 18 replies, 5 voices, and was last updated 6 years ago by deadkenny.
-
Java Scripting Help
-
Hi All,
I’m no java programmer but have been asked to take a look at something for someone.
I’m trying to figure out how to return a piece of text that is in the source code of a web page as a variable to then be passed in to another section of the page to return a result. The latter section is all done and the results are returning fine if I manually enter the text but need it to come in as a variable.
I want to return the IP address and it is in the source code with the format ‘IP: 192.168.0.1’, I only want the IP though, not the preceding ‘IP:’ label.
Any help greatly received!
Posted 6 years agoIt’s difficult to tell exactly what you are asking for at the moment. In the title you mention “java scripting” and then in the text you say “java”. Trouble is; they are entirely different things (and a complete arse they have similar names)
Is this script something that runs on the webserver or in the browser on the visitors computer?
Rachel
Posted 6 years agoYeah, apologies I wasn’t clearer.
It’s run in the browser as part of a web page.
Essentially, the user will navigate to web page and the page already reads their IP and puts it in to the source code of the html, I just need to read that value back out as a variable to pass in to some other bits.
Posted 6 years agookay – so it’s javascript, then 🙂
Can you point us at the page? I can take a look for you
Posted 6 years agoSometimes, a library like jQuery (jquery.com) can make it easier to write javascript code that is readable.
If your webpage included something like
<div id=“ip-address”>192.168.1.1</div>
then you could have some script like
$( document ).ready(function() {
var my_ip = $(‘#ip-address’).text();
alert(my_ip);
});or not alert() but do something useful!
(yes this could be done directly in js – I just wanted to make it readable)
Rachel
Posted 6 years agoI can’t show you the page I’m afraid and after removing customer info it wouldn’t make a lot of sense.
There are no div markings around the IP either, it’s sitting hidden in the source code along with some other variables that we record at the same time.
Posted 6 years agookay – can you post a section of the “code” that shows an example IP address? Otherwise it’s a bit difficult to guess!
Rachel
Posted 6 years agoand if it looks like this, we’re in business… 🙂
Posted 6 years ago
jQuery.extend(Drupal.settings, { "basePath": "/", "user_relationships_ui": { "loadingimage": "/profiles/drupal_commons/modules/contrib/user_relationships/user_relationships_ui/images/loadingAnimation.gif", "savingimage": "/profiles/drupal_commons/modules/contrib/user_relationships/user_relationships_ui/images/savingimage.gif", "position": { "position": "absolute", "left": "0", "top": "0" } }, "colorbox": { "transition": "elastic", "speed": 350, "opacity": "0.85", "slideshow": false, "slideshowAuto": false, "slideshowSpeed": 2500, "slideshowStart": "", "slideshowStop": "", "current": "{current} of {total}", "previous": "« Prev", "next": "Next »", "close": "Close", "overlayClose": true, "maxWidth": "100%", "maxHeight": "100%" }, "uc_ajax_cart": { "CALLBACK": "/uc_ajax_cart/add/item", "SHOW_CALLBACK": "/uc_ajax_cart/show", "CART_LINK_CALLBACK": "/uc_ajax_cart/addlink", "BLOCK_UI": 1, "TIMEOUT": 2000, "UPDATE_CALLBACK": "/uc_ajax_cart/update", "UPDATE": 0, "CART_VIEW_ON": 0, "SHOW_VIEW_CALLBACK": "/uc_ajax_cart/show-cart-view", "TRACK_CLOSED_STATE": 0, "INITIAL_CLOSED_STATE": 0, "CART_PANE_EFFECT": 0, "CART_PANE_EFFECT_DURATION": 200, "HIDE_CART_OPERATIONS": 0, "COLLAPSIBLE_CART": 0, "ADD_TITLE": "Please wait", "ADD_MESSAGES": [ "Adding product to cart..." ], "REMOVE_TITLE": "Please wait", "REMOVE_MESSAGES": [ "Removing product from cart..." ], "UPDATE_TITLE": "Please wait", "UPDATE_MESSAGES": [ "Updating cart..." ], "CART_OPERATION": "Cart" }, "googleanalytics": { "trackOutbound": 1, "trackMailto": 1, "trackDownload": 1, "trackDownloadExtensions": "7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe
Assuming you have access to the string in question:
function parseIPAddress(str) {
var results, ip
var regex = /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/
if (results = regex.exec(str)) ip = results[0]
return ip
}var str = ‘IP: 192.168.0.1’
console.dir(parseIPAddress(str))
the function will either return a string or undefined.
Posted 6 years agoLol, there isn’t any code around it either, the IP is inserted by another piece that is server side before the page is returned to the user.
It is quite literally just a list of variables at the bottom of the page one of which is IP: 192.168.0.1
Looks a bit like this:
Posted 6 years ago
<!–
ID: 172.24.1.2
Username:
Description:
UserGroups: []
UserGroup ids: []
Until: Tue Mar 22 11:14:51 2016
Max score: 400
Max size: 5000
IP: 172.24.1.2
Port: 3128
Computer:
Flag ids: [201, 203, 250, 251, 254, 255, 260, 261, 266, 267, 401, 425, 2100, 2101, 1000030]
Decision ids: [408, 1000, 1202, 1205, 1000030]
Download: 0
Notify:
language: en_GB.utf8
IP address: -1407713022
Server address: 172.21.138.120
–>If you can’t get access to the node in question, then you could try parsing the whole document body – can’t imagine there’ll be many IP addresses in there:
parseIPAddress(document.body.innerHTML)
Posted 6 years agoAh, ok, you DO have multiple IP addresses in there … try this:
;(function () {
‘use strict’
function getIPAddress(str) {
var results, ip
var regex = /\bIP:\s?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/
if (results = regex.exec(str)) ip = results[1]
return ip
}var ip = getIPAddress(document.body.innerHTML)
alert(ip)
})()
Posted 6 years agoUsing that code I get an alert but it just says ‘undefined’ so I’m presuming it’s not running the code before it properly to determine the IP.
Posted 6 years agosomouk – is this some sort of weird squid cache thing?? It’s really odd what you’re trying to do. I have a feeling it will end up a squiggly mess before long…
Rachel
Posted 6 years agoIt is indeed Squid related Rachel, no problems if it’s squiggly at all!
Posted 6 years agoTry this, or put the original code at the bottom of the page if you can:
<script>
;(function () {‘use strict’
function getIPAddress(str) {
var results, ip
var regex = /\bIP:\s?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/
if (results = regex.exec(str)) ip = results[1]
return ip
}document.addEventListener(‘DOMContentLoaded’, function () {
var ip = getIPAddress(document.body.innerHTML)
alert(ip)
})})()
Posted 6 years ago
</script>Hang on a minute! Someone’s come along requesting free work being done for them.
Shouldn’t we be providing javascript that generates unicorns and rainbows?
Posted 6 years agoLol, that would be pretty funny actually.
Thank you for those who have had an input, will give it a try in the morning with a fresh head!
Posted 6 years agoIf you want free work done, that’s a job for Stack Overflow. That’s what all the Indian offshore guys do to get their work done 😉
Posted 6 years ago
The topic ‘Java Scripting Help’ is closed to new replies.
Sign up as a Singletrack Member and you can leave comments on stories, use the classified ads, and post in our forums, do quizzes and more.
Join us, join in, it’s free, and fun.